p2p/nat: remove forceful port mapping in upnp

This commit is contained in:
qqqeck 2024-08-05 13:43:27 +09:00 committed by Csaba Kiraly
parent ee30681a8d
commit ca78b84407
No known key found for this signature in database
GPG key ID: 0FE274EE8C95166E

View file

@ -86,7 +86,6 @@ func (n *upnp) AddMapping(protocol string, extport, intport int, desc string, li
}
protocol = strings.ToUpper(protocol)
lifetimeS := uint32(lifetime / time.Second)
n.DeleteMapping(protocol, extport, intport)
err = n.withRateLimit(func() error {
return n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
@ -111,12 +110,15 @@ func (n *upnp) addAnyPortMapping(protocol string, extport, intport int, ip net.I
}
// It will retry with a random port number if the client does
// not support AddAnyPortMapping.
var err error
for i := 0; i < 3; i++ {
extport = n.randomPort()
err := n.client.AddPortMapping("", uint16(extport), protocol, uint16(intport), ip.String(), true, desc, lifetimeS)
if err != nil {
return 0, err
}
if err == nil {
return uint16(extport), nil
}
}
return 0, err
}
func (n *upnp) randomPort() int {