mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 04:36:42 +00:00
p2p/nat: fix err shadowing in UPnP addAnyPortMapping
This commit is contained in:
parent
73a2df2b0a
commit
5dfb28afc6
1 changed files with 8 additions and 8 deletions
|
|
@ -107,30 +107,30 @@ func (n *upnp) addAnyPortMapping(protocol string, extport, intport int, ip net.I
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// For IGDv1 and v1 services we should first try to add with extport.
|
// For IGDv1 and v1 services we should first try to add with extport.
|
||||||
|
var lastErr error
|
||||||
for i := 0; i < retryCount+1; i++ {
|
for i := 0; i < retryCount+1; i++ {
|
||||||
err := n.withRateLimit(func() error {
|
lastErr = n.withRateLimit(func() error {
|
||||||
return n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
|
return n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
|
||||||
})
|
})
|
||||||
if err == nil {
|
if lastErr == nil {
|
||||||
return uint16(extport), nil
|
return uint16(extport), nil
|
||||||
}
|
}
|
||||||
log.Debug("Failed to add port mapping", "protocol", protocol, "extport", extport, "intport", intport, "err", err)
|
log.Debug("Failed to add port mapping", "protocol", protocol, "extport", extport, "intport", intport, "err", lastErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If above fails, we retry with a random port.
|
// If above fails, we retry with a random port.
|
||||||
// We retry several times because of possible port conflicts.
|
// We retry several times because of possible port conflicts.
|
||||||
var err error
|
|
||||||
for i := 0; i < randomCount; i++ {
|
for i := 0; i < randomCount; i++ {
|
||||||
extport = n.randomPort()
|
extport = n.randomPort()
|
||||||
err := n.withRateLimit(func() error {
|
lastErr = n.withRateLimit(func() error {
|
||||||
return n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
|
return n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
|
||||||
})
|
})
|
||||||
if err == nil {
|
if lastErr == nil {
|
||||||
return uint16(extport), nil
|
return uint16(extport), nil
|
||||||
}
|
}
|
||||||
log.Debug("Failed to add random port mapping", "protocol", protocol, "extport", extport, "intport", intport, "err", err)
|
log.Debug("Failed to add random port mapping", "protocol", protocol, "extport", extport, "intport", intport, "err", lastErr)
|
||||||
}
|
}
|
||||||
return 0, err
|
return 0, lastErr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *upnp) randomPort() int {
|
func (n *upnp) randomPort() int {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue