Skip to content

Commit 245c9b8

Browse files
committed
ipn/proxies: process missing proxies before choosing local
1 parent 68bff0c commit 245c9b8

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

intra/ipn/proxies.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -706,17 +706,6 @@ retrySearch:
706706
}
707707
}
708708

709-
// lopinned is always the first element, if any.
710-
for _, pid := range loproxies {
711-
// ignore err, as it unlikely for local proxies
712-
// that are always available, and are presumed to
713-
// be gateways (route all ips)
714-
if p, _ := px.pinID(uid, ipp, pid); p != nil { // repin
715-
return p, nil
716-
}
717-
missproxies = append(missproxies, pid)
718-
}
719-
720709
if len(missproxies) > 0 && !waitedForMissingProxy {
721710
// wait for the missing proxy to be added before returning error
722711
waitedForMissingProxy = true
@@ -728,10 +717,21 @@ retrySearch:
728717
log.W("proxy: pin: %s: %s: %s+%s; missing: %v; notok: %v; noroute: %v; paused: %v; ended: %v; waited: %ds",
729718
who, proto, uid, ippstr, missproxies, notokproxies, norouteproxies, pausedproxies, endproxies, stalledSec)
730719
pids = missproxies
731-
missproxies = make([]string, 0)
720+
clear(missproxies)
732721
goto retrySearch
733722
}
734723

724+
// lopinned is always the first element, if any.
725+
for _, pid := range loproxies {
726+
// ignore err, as it unlikely for local proxies
727+
// that are always available, and are presumed to
728+
// be gateways (route all ips)
729+
if p, _ := px.pinID(uid, ipp, pid); p != nil { // repin
730+
return p, nil
731+
}
732+
missproxies = append(missproxies, pid)
733+
}
734+
735735
if len(notokproxies) > 0 {
736736
return nil, e(errNoProxyHealthy)
737737
} else if len(missproxies) > 0 {

0 commit comments

Comments
 (0)