|
@@ -2375,6 +2375,23 @@ void __tcp_put_md5sig_pool(void)
|
|
|
EXPORT_SYMBOL(__tcp_put_md5sig_pool);
|
|
|
#endif
|
|
|
|
|
|
+void tcp_done(struct sock *sk)
|
|
|
+{
|
|
|
+ if(sk->sk_state == TCP_SYN_SENT || sk->sk_state == TCP_SYN_RECV)
|
|
|
+ TCP_INC_STATS_BH(TCP_MIB_ATTEMPTFAILS);
|
|
|
+
|
|
|
+ tcp_set_state(sk, TCP_CLOSE);
|
|
|
+ tcp_clear_xmit_timers(sk);
|
|
|
+
|
|
|
+ sk->sk_shutdown = SHUTDOWN_MASK;
|
|
|
+
|
|
|
+ if (!sock_flag(sk, SOCK_DEAD))
|
|
|
+ sk->sk_state_change(sk);
|
|
|
+ else
|
|
|
+ inet_csk_destroy_sock(sk);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(tcp_done);
|
|
|
+
|
|
|
extern void __skb_cb_too_small_for_tcp(int, int);
|
|
|
extern struct tcp_congestion_ops tcp_reno;
|
|
|
|