Skip to content

Commit bc91ca3

Browse files
committed
core/sockopt: skip setting tcp opts on udp
1 parent de707d1 commit bc91ca3

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

intra/core/sockopt.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ func DisableKeepAlive(c MinConn) (done bool) {
8383
// TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT, TCP_USER_TIMEOUT.
8484
// args is optional, and should be in the order of idle, interval, count.
8585
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:
8790
id := conn2str(c)
8891

8992
rawConn, err := pc.SyscallConn()
@@ -110,24 +113,24 @@ func SetKeepAliveConfigSockOpt(c MinConn, args ...int) (ok bool) {
110113
err = rawConn.Control(func(fd uintptr) {
111114
sock := int(fd)
112115
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)
114117
ok = false
115118
}
116119
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)
118121
ok = false
119122
}
120123
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)
122125
ok = false
123126
}
124127
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)
126129
ok = false
127130
}
128131
// code.googlesource.com/google-api-go-client/+/master/transport/grpc/dial_socketopt.go#30
129132
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)
131134
ok = false
132135
}
133136
})

0 commit comments

Comments
 (0)