From fc6a5ae3ec7990d5c78649b0af46c46f31b88040 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 4 Jun 2015 14:05:52 +0200 Subject: p2p/nat: add timeout for UPnP SOAP requests --- p2p/nat/natupnp.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'p2p') diff --git a/p2p/nat/natupnp.go b/p2p/nat/natupnp.go index ef7765e8d..21a9cf8b1 100644 --- a/p2p/nat/natupnp.go +++ b/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 -- cgit v1.2.3 From ff84352fb73bdbb07a7b2cf24b417927bf5a5c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 9 Jun 2015 16:05:40 +0300 Subject: p2p: fix close data race --- p2p/rlpx.go | 1 + 1 file changed, 1 insertion(+) (limited to 'p2p') diff --git a/p2p/rlpx.go b/p2p/rlpx.go index e1cb13aae..6bbf20671 100644 --- a/p2p/rlpx.go +++ b/p2p/rlpx.go @@ -102,6 +102,7 @@ func (t *rlpx) doProtoHandshake(our *protoHandshake) (their *protoHandshake, err werr := make(chan error, 1) go func() { werr <- Send(t.rw, handshakeMsg, our) }() if their, err = readProtocolHandshake(t.rw, our); err != nil { + <-werr // make sure the write terminates too return nil, err } if err := <-werr; err != nil { -- cgit v1.2.3 From 3239aca69bd940626f3e27ab829fc7fa1c7cdc5e Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 9 Jun 2015 12:10:40 +0200 Subject: p2p: bump global write timeout to 20s The previous value of 5 seconds causes timeouts for legitimate messages if large messages are sent. --- p2p/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'p2p') diff --git a/p2p/server.go b/p2p/server.go index 589041810..59b97a0aa 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -30,7 +30,7 @@ const ( frameReadTimeout = 30 * time.Second // Maximum amount of time allowed for writing a complete message. - frameWriteTimeout = 5 * time.Second + frameWriteTimeout = 20 * time.Second ) var errServerStopped = errors.New("server stopped") -- cgit v1.2.3