diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-11-11 14:13:50 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-11-11 14:15:06 -0800 |
commit | 773071680021a2fb985f3a3af7e9f65cdc1bd1ed (patch) | |
tree | 092d2346062bdd12253e707ddcc2960fde90d7f9 /pkg/tcpip/transport/tcp/accept.go | |
parent | 833dbba70dbcfef4a9aca950055a28d71c19d543 (diff) |
Make `connect` on socket returned by `accept` correctly error out with EISCONN
PiperOrigin-RevId: 279814493
Diffstat (limited to 'pkg/tcpip/transport/tcp/accept.go')
-rw-r--r-- | pkg/tcpip/transport/tcp/accept.go | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/pkg/tcpip/transport/tcp/accept.go b/pkg/tcpip/transport/tcp/accept.go index 0e8e0a2b4..f24b51b91 100644 --- a/pkg/tcpip/transport/tcp/accept.go +++ b/pkg/tcpip/transport/tcp/accept.go @@ -300,6 +300,7 @@ func (l *listenContext) createEndpointAndPerformHandshake(s *segment, opts *head ep.mu.Lock() ep.stack.Stats().TCP.CurrentEstablished.Increment() ep.state = StateEstablished + ep.isConnectNotified = true ep.mu.Unlock() // Update the receive window scaling. We can't do it before the @@ -539,6 +540,7 @@ func (e *endpoint) handleListenSegment(ctx *listenContext, s *segment) { // Switch state to connected. n.stack.Stats().TCP.CurrentEstablished.Increment() n.state = StateEstablished + n.isConnectNotified = true // Do the delivery in a separate goroutine so // that we don't block the listen loop in case |