Преглед изворни кода

p2p/nat: add timeout for UPnP SOAP requests

Felix Lange пре 10 година
родитељ
комит
fc6a5ae3ec
1 измењених фајлова са 3 додато и 0 уклоњено
  1. 3 0
      p2p/nat/natupnp.go

+ 3 - 0
p2p/nat/natupnp.go

@@ -12,6 +12,8 @@ import (
 	"github.com/huin/goupnp/dcps/internetgateway2"
 )
 
+const soapRequestTimeout = 3 * time.Second
+
 type upnp struct {
 	dev     *goupnp.RootDevice
 	service string
@@ -131,6 +133,7 @@ func discover(out chan<- *upnp, target string, matcher func(*goupnp.RootDevice,
 			}
 			// check for a matching IGD service
 			sc := goupnp.ServiceClient{service.NewSOAPClient(), devs[i].Root, service}
+			sc.SOAPClient.HTTPClient.Timeout = soapRequestTimeout
 			upnp := matcher(devs[i].Root, sc)
 			if upnp == nil {
 				return