diff options
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/nat/natupnp.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/p2p/nat/natupnp.go b/p2p/nat/natupnp.go index 0bcb262bf..890a35043 100644 --- a/p2p/nat/natupnp.go +++ b/p2p/nat/natupnp.go @@ -133,6 +133,9 @@ func discoverUPnP() Interface { return nil } +// finds devices matching the given target and calls matcher for all +// advertised services of each device. The first non-nil service found +// is sent into out. If no service matched, nil is sent. func discover(out chan<- *upnp, target string, matcher func(*goupnp.RootDevice, goupnp.ServiceClient) *upnp) { devs, err := goupnp.DiscoverDevices(target) if err != nil { @@ -148,7 +151,12 @@ func discover(out chan<- *upnp, target string, matcher func(*goupnp.RootDevice, return } // check for a matching IGD service - sc := goupnp.ServiceClient{service.NewSOAPClient(), devs[i].Root, service} + sc := goupnp.ServiceClient{ + SOAPClient: service.NewSOAPClient(), + RootDevice: devs[i].Root, + Location: devs[i].Location, + Service: service, + } sc.SOAPClient.HTTPClient.Timeout = soapRequestTimeout upnp := matcher(devs[i].Root, sc) if upnp == nil { |