diff --git a/transport/internet/system_dialer.go b/transport/internet/system_dialer.go index a696f26d3..578e434d2 100644 --- a/transport/internet/system_dialer.go +++ b/transport/internet/system_dialer.go @@ -64,7 +64,7 @@ func (d *DefaultSystemDialer) Dial(ctx context.Context, src net.Address, dest ne }, nil } goStdKeepAlive := time.Duration(0) - if sockopt.TcpKeepAliveIdle != 0 { + if sockopt != nil && sockopt.TcpKeepAliveIdle != 0 { goStdKeepAlive = time.Duration(-1) } dialer := &net.Dialer{ diff --git a/transport/internet/system_listener.go b/transport/internet/system_listener.go index 73e19c118..a5b139dfb 100644 --- a/transport/internet/system_listener.go +++ b/transport/internet/system_listener.go @@ -50,7 +50,7 @@ func (dl *DefaultListener) Listen(ctx context.Context, addr net.Addr, sockopt *S network = addr.Network() address = addr.String() lc.Control = getControlFunc(ctx, sockopt, dl.controllers) - if sockopt.TcpKeepAliveIdle != 0 { + if sockopt != nil && sockopt.TcpKeepAliveIdle != 0 { lc.KeepAlive = time.Duration(-1) } case *net.UnixAddr: