Skip to content

Commit 04fe473

Browse files
committed
nilaway: ipn/auto
1 parent 1f64ed1 commit 04fe473

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

intra/ipn/auto.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,14 +265,18 @@ func (h *auto) dial(network, laddr, raddr string) (protect.Conn, error) {
265265
)
266266

267267
defer localDialStatus(h.status, err)
268-
if err != nil {
268+
269+
delpin := false
270+
if err != nil || c == nil || core.IsNil(c) {
269271
h.exp.Del(raddr)
272+
c = nil
273+
delpin = true // remove pin
270274
} else {
271275
h.exp.Put(raddr, who)
272276
}
273277
kaenabled := maybeKeepAlive(c)
274-
logei(err)("proxy: auto: w(%d) pin(%t/%d), dial(%s) %s, ka? %t; errs? %v+%v",
275-
who, recent, previdx, network, raddr, kaenabled, err, pxrerrs)
278+
logei(err)("proxy: auto: w(%d) pin(%t+%t/%d), dial(%s) %s, ka? %t; errs? %v+%v",
279+
who, recent, !delpin, previdx, network, raddr, kaenabled, err, pxrerrs)
276280

277281
return c, err
278282
}
@@ -506,6 +510,10 @@ func maybeKeepAlive(c net.Conn) (keepingalive bool) {
506510
}
507511

508512
func maybeKeepAlive2(c net.Conn) (keepingalive, ok bool) {
513+
if c == nil {
514+
return
515+
}
516+
509517
if settings.GetDialerOpts().LowerKeepAlive {
510518
// adjust socket's keepalive config
511519
lowered := core.SetKeepAliveConfigSockOpt(c)

0 commit comments

Comments
 (0)