summaryrefslogtreecommitdiff
path: root/libgo/go/net/tcpsock_posix.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/net/tcpsock_posix.go')
-rw-r--r--libgo/go/net/tcpsock_posix.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/libgo/go/net/tcpsock_posix.go b/libgo/go/net/tcpsock_posix.go
index 3d4579cf702..1ff0ec04616 100644
--- a/libgo/go/net/tcpsock_posix.go
+++ b/libgo/go/net/tcpsock_posix.go
@@ -140,7 +140,16 @@ func (ln *TCPListener) accept() (*TCPConn, error) {
if err != nil {
return nil, err
}
- return newTCPConn(fd), nil
+ tc := newTCPConn(fd)
+ if ln.lc.KeepAlive >= 0 {
+ setKeepAlive(fd, true)
+ ka := ln.lc.KeepAlive
+ if ln.lc.KeepAlive == 0 {
+ ka = defaultTCPKeepAlive
+ }
+ setKeepAlivePeriod(fd, ka)
+ }
+ return tc, nil
}
func (ln *TCPListener) close() error {
@@ -160,5 +169,5 @@ func (sl *sysListener) listenTCP(ctx context.Context, laddr *TCPAddr) (*TCPListe
if err != nil {
return nil, err
}
- return &TCPListener{fd}, nil
+ return &TCPListener{fd: fd, lc: sl.ListenConfig}, nil
}