From: davtoro <35560260+davtoro@users.noreply.github.com> Date: Mon, 16 Dec 2019 02:22:24 +0000 (+0100) Subject: Possibility to change UPnP ID (#354) X-Git-Tag: v1.11.0~11 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=82e1c81a9ab271c76c164a5584e2f454534cd54d;p=btrtrc.git Possibility to change UPnP ID (#354) --- diff --git a/config.go b/config.go index 7f1b4738..e40ce30c 100644 --- a/config.go +++ b/config.go @@ -32,6 +32,7 @@ type ClientConfig struct { ListenHost func(network string) string ListenPort int NoDefaultPortForwarding bool + UpnpID string // Don't announce to trackers. This only leaves DHT to discover peers. DisableTrackers bool `long:"disable-trackers"` DisablePEX bool `long:"disable-pex"` @@ -151,6 +152,7 @@ func NewDefaultClientConfig() *ClientConfig { HTTPUserAgent: DefaultHTTPUserAgent, ExtendedHandshakeClientVersion: "go.torrent dev 20181121", Bep20: "-GT0002-", + UpnpID: "anacrolix/torrent", NominalDialTimeout: 20 * time.Second, MinDialTimeout: 3 * time.Second, EstablishedConnsPerTorrent: 50, diff --git a/portfwd.go b/portfwd.go index 5cca34e2..db5bb7df 100644 --- a/portfwd.go +++ b/portfwd.go @@ -7,8 +7,8 @@ import ( "github.com/anacrolix/upnp" ) -func (cl *Client) addPortMapping(d upnp.Device, proto upnp.Protocol, internalPort int) { - externalPort, err := d.AddPortMapping(proto, internalPort, internalPort, "anacrolix/torrent", 0) +func (cl *Client) addPortMapping(d upnp.Device, proto upnp.Protocol, internalPort int, upnpID string) { + externalPort, err := d.AddPortMapping(proto, internalPort, internalPort, upnpID, 0) if err != nil { cl.logger.WithValues(log.Warning).Printf("error adding %s port mapping: %s", proto, err) } else if externalPort != internalPort { @@ -29,10 +29,11 @@ func (cl *Client) forwardPort() { cl.lock() cl.logger.Printf("discovered %d upnp devices", len(ds)) port := cl.incomingPeerPort() + id := cl.config.UpnpID cl.unlock() for _, d := range ds { - go cl.addPortMapping(d, upnp.TCP, port) - go cl.addPortMapping(d, upnp.UDP, port) + go cl.addPortMapping(d, upnp.TCP, port, id) + go cl.addPortMapping(d, upnp.UDP, port, id) } cl.lock() }