@@ -83,7 +83,10 @@ func DisableKeepAlive(c MinConn) (done bool) {
83
83
// TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT, TCP_USER_TIMEOUT.
84
84
// args is optional, and should be in the order of idle, interval, count.
85
85
func SetKeepAliveConfigSockOpt (c MinConn , args ... int ) (ok bool ) {
86
- if pc , ok := c .(PoolableConn ); ok {
86
+ switch pc := c .(type ) {
87
+ case * net.UDPConn :
88
+ return
89
+ case PoolableConn :
87
90
id := conn2str (c )
88
91
89
92
rawConn , err := pc .SyscallConn ()
@@ -110,24 +113,24 @@ func SetKeepAliveConfigSockOpt(c MinConn, args ...int) (ok bool) {
110
113
err = rawConn .Control (func (fd uintptr ) {
111
114
sock := int (fd )
112
115
if err := syscall .SetsockoptInt (sock , syscall .SOL_SOCKET , syscall .SO_KEEPALIVE , boolint (true )); err != nil {
113
- log .D ("core: sockopt: set SO_KEEPALIVE %s (%d) failed: %v" , id , sock , err )
116
+ log .V ("core: sockopt: set SO_KEEPALIVE %s (%d) failed: %v" , id , sock , err )
114
117
ok = false
115
118
}
116
119
if err := syscall .SetsockoptInt (sock , syscall .IPPROTO_TCP , syscall .TCP_KEEPIDLE , idle ); err != nil {
117
- log .D ("core: sockopt: set TCP_KEEPIDLE %s (%d) failed: %ds, %v" , id , sock , idle , err )
120
+ log .V ("core: sockopt: set TCP_KEEPIDLE %s (%d) failed: %ds, %v" , id , sock , idle , err )
118
121
ok = false
119
122
}
120
123
if err := syscall .SetsockoptInt (sock , syscall .IPPROTO_TCP , syscall .TCP_KEEPINTVL , interval ); err != nil {
121
- log .D ("core: sockopt: set TCP_KEEPINTVL %s (%d) failed: %ds, %v" , id , sock , interval , err )
124
+ log .V ("core: sockopt: set TCP_KEEPINTVL %s (%d) failed: %ds, %v" , id , sock , interval , err )
122
125
ok = false
123
126
}
124
127
if err := syscall .SetsockoptInt (sock , syscall .IPPROTO_TCP , syscall .TCP_KEEPCNT , count ); err != nil {
125
- log .D ("core: sockopt: set TCP_KEEPCNT %s (%d) failed: #%d, %v" , id , sock , count , err )
128
+ log .V ("core: sockopt: set TCP_KEEPCNT %s (%d) failed: #%d, %v" , id , sock , count , err )
126
129
ok = false
127
130
}
128
131
// code.googlesource.com/google-api-go-client/+/master/transport/grpc/dial_socketopt.go#30
129
132
if err := unix .SetsockoptInt (sock , unix .SOL_TCP , unix .TCP_USER_TIMEOUT , usertimeoutms ); err != nil {
130
- log .D ("core: sockopt: set TCP_USER_TIMEOUT %s (%d) failed: %dms, %v" , id , sock , usertimeoutms , err )
133
+ log .V ("core: sockopt: set TCP_USER_TIMEOUT %s (%d) failed: %dms, %v" , id , sock , usertimeoutms , err )
131
134
ok = false
132
135
}
133
136
})
0 commit comments