void PeerServer::connect(bi::tcp::endpoint const& _ep) { clog(NetNote) << "Attempting connection to " << _ep; bi::tcp::socket* s = new bi::tcp::socket(m_ioService); s->async_connect(_ep, [=](boost::system::error_code const& ec) { if (ec) { clog(NetNote) << "Connection refused to " << _ep << " (" << ec.message() << ")"; for (auto i = m_incomingPeers.begin(); i != m_incomingPeers.end(); ++i) if (i->second.first == _ep && i->second.second < 3) { m_freePeers.push_back(i->first); goto OK; } // for-else clog(NetNote) << "Giving up."; OK:; } else { auto p = make_shared<PeerSession>(this, std::move(*s), m_networkId, _ep.address(), _ep.port()); clog(NetNote) << "Connected to " << _ep; p->start(); } delete s; }); }
void WebThreeDirect::requirePeer(NodeId const& _node, bi::tcp::endpoint const& _host) { m_net.requirePeer(_node, NodeIPEndpoint(_host.address(), _host.port(), _host.port())); }
void WebThreeDirect::addNode(NodeID const& _node, bi::tcp::endpoint const& _host) { m_net.addNode(_node, NodeIPEndpoint(_host.address(), _host.port(), _host.port())); }