From 38230cb1e4ac81d75c4587f133a28412a5e77a0a Mon Sep 17 00:00:00 2001 From: subtly Date: Wed, 11 Feb 2015 15:54:31 -0500 Subject: [PATCH] Increase connect timeout for upnp initialization and fix resolver. --- libp2p/Host.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libp2p/Host.cpp b/libp2p/Host.cpp index 7010f9b04..5892121ed 100644 --- a/libp2p/Host.cpp +++ b/libp2p/Host.cpp @@ -413,13 +413,15 @@ void Host::addNode(NodeId const& _node, std::string const& _addr, unsigned short bi::address addr = bi::address::from_string(_addr, ec); if (ec) { - bi::tcp::resolver r(m_ioService); - r.async_resolve({_addr, toString(_tcpPeerPort)}, [=](boost::system::error_code const& _ec, bi::tcp::resolver::iterator _epIt) + bi::tcp::resolver *r = new bi::tcp::resolver(m_ioService); + r->async_resolve({_addr, toString(_tcpPeerPort)}, [=](boost::system::error_code const& _ec, bi::tcp::resolver::iterator _epIt) { - if (_ec) - return; - bi::tcp::endpoint tcp = *_epIt; - if (m_nodeTable) m_nodeTable->addNode(Node(_node, NodeIPEndpoint(bi::udp::endpoint(tcp.address(), _udpNodePort), tcp))); + if (!_ec) + { + bi::tcp::endpoint tcp = *_epIt; + if (m_nodeTable) m_nodeTable->addNode(Node(_node, NodeIPEndpoint(bi::udp::endpoint(tcp.address(), _udpNodePort), tcp))); + } + delete r; }); } else @@ -428,7 +430,7 @@ void Host::addNode(NodeId const& _node, std::string const& _addr, unsigned short void Host::connect(std::shared_ptr const& _p) { - for (unsigned i = 0; i < 40; i++) + for (unsigned i = 0; i < 200; i++) if (isWorking() && !m_run) this_thread::sleep_for(chrono::milliseconds(50)); if (!m_run)