aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-12-16 12:30:05 +0900
committerDavid S. Miller <davem@davemloft.net>2015-12-15 23:26:52 -0500
commitc1e64e298b8cad309091b95d8436a0255c84f54a (patch)
treec9ddd8cb837aabafdea04d5c04b74902e5da1a21 /include/net
parentnet: diag: Support SOCK_DESTROY for inet sockets. (diff)
downloadlinux-dev-c1e64e298b8cad309091b95d8436a0255c84f54a.tar.xz
linux-dev-c1e64e298b8cad309091b95d8436a0255c84f54a.zip
net: diag: Support destroying TCP sockets.
This implements SOCK_DESTROY for TCP sockets. It causes all blocking calls on the socket to fail fast with ECONNABORTED and causes a protocol close of the socket. It informs the other end of the connection by sending a RST, i.e., initiating a TCP ABORT as per RFC 793. ECONNABORTED was chosen for consistency with FreeBSD. Signed-off-by: Lorenzo Colitti <lorenzo@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/tcp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index f80e74c5ad18..3077735b348d 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1170,6 +1170,8 @@ void tcp_set_state(struct sock *sk, int state);
void tcp_done(struct sock *sk);
+int tcp_abort(struct sock *sk, int err);
+
static inline void tcp_sack_reset(struct tcp_options_received *rx_opt)
{
rx_opt->dsack = 0;