summaryrefslogtreecommitdiff
path: root/libgo/go/net/tcpsock_plan9.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/net/tcpsock_plan9.go')
-rw-r--r--libgo/go/net/tcpsock_plan9.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/libgo/go/net/tcpsock_plan9.go b/libgo/go/net/tcpsock_plan9.go
index f70ef6f43ab..e2e835957c0 100644
--- a/libgo/go/net/tcpsock_plan9.go
+++ b/libgo/go/net/tcpsock_plan9.go
@@ -44,7 +44,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 {
@@ -74,5 +83,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
}