Skip to content

Commit 8c50d4e

Browse files
committed
ipn: log socket keepalive status
1 parent c5374c8 commit 8c50d4e

File tree

4 files changed

+28
-16
lines changed

4 files changed

+28
-16
lines changed

intra/ipn/auto.go

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,9 @@ func (h *auto) dial(network, laddr, raddr string) (protect.Conn, error) {
295295
} else {
296296
h.exp.Put(raddr, who)
297297
}
298-
maybeKeepAlive(c)
299-
logei(err)("proxy: auto: w(%d) pin(%t/%d), dial(%s) %s; err? %v",
300-
who, recent, previdx, network, raddr, err)
298+
kaenabled := maybeKeepAlive(c)
299+
logei(err)("proxy: auto: w(%d) pin(%t/%d), dial(%s) %s, ka? %t; err? %v",
300+
who, recent, previdx, network, raddr, kaenabled, err)
301301
return c, err
302302
}
303303

@@ -547,12 +547,22 @@ func (*auto) announceIfHealthy(p Proxy, network, local string) (net.PacketConn,
547547
return p.Dialer().Announce(network, local)
548548
}
549549

550-
func maybeKeepAlive(c net.Conn) {
550+
func maybeKeepAlive(c net.Conn) (keepingalive bool) {
551+
keepingalive, _ = maybeKeepAlive2(c)
552+
return
553+
}
554+
555+
func maybeKeepAlive2(c net.Conn) (keepingalive, ok bool) {
551556
if settings.GetDialerOpts().LowerKeepAlive {
552-
// adjust TCP keepalive config if c is a TCPConn
553-
core.SetKeepAliveConfigSockOpt(c)
554-
} else {
555-
// disable TCP keepalive config if c is a TCPConn
556-
core.DisableKeepAlive(c)
557+
// adjust socket's keepalive config
558+
lowered := core.SetKeepAliveConfigSockOpt(c)
559+
keepingalive = lowered
560+
ok = lowered
561+
return
557562
}
563+
// disable socket keepalive
564+
disabled := core.DisableKeepAlive(c)
565+
keepingalive = !disabled
566+
ok = disabled
567+
return
558568
}

intra/ipn/base.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,9 @@ func (h *base) dial(network, local, remote string) (c protect.Conn, err error) {
119119
}
120120
defer localDialStatus(h.status, err)
121121

122-
maybeKeepAlive(c)
123-
log.I("proxy: base: dial(%s) to %s=>%s (via %s); err? %v", network, local, remote, who, err)
122+
kaenabled := maybeKeepAlive(c)
123+
log.I("proxy: base: dial(%s) to %s=>%s (via %s), ka? %t; err? %v",
124+
network, local, remote, who, kaenabled, err)
124125
return
125126
}
126127

intra/ipn/exit.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,9 @@ func (h *exit) dial(network, local, remote string) (protect.Conn, error) {
9494
c, err := localDialStrat(h.outbound, network, local, remote)
9595
defer localDialStatus(h.status, err)
9696

97-
maybeKeepAlive(c)
98-
log.I("proxy: exit: dial(%s) %s => %s; err? %v", network, local, remote, err)
97+
kaenabled := maybeKeepAlive(c)
98+
log.I("proxy: exit: dial(%s) %s => %s, ka? %t; err? %v",
99+
network, local, remote, kaenabled, err)
99100
return c, err
100101
}
101102

intra/ipn/exit64.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ func (h *exit64) dial(network, local, remote string) (protect.Conn, error) {
9696
c, err := localDialStrat(h.outbound, network, local64, addr64)
9797
defer localDialStatus(h.status, err)
9898

99-
maybeKeepAlive(c)
100-
log.I("proxy: exit64: dial(%s) %s via %s to %s; err? %v",
101-
network, local64, remote, addr64, err)
99+
kaenabled := maybeKeepAlive(c)
100+
log.I("proxy: exit64: dial(%s) %s via %s to %s, ka? %t; err? %v",
101+
network, local64, remote, addr64, kaenabled, err)
102102

103103
return c, err
104104
}

0 commit comments

Comments
 (0)