bool Conn::checkConnect() { if( unlikely(!sock.is_open()) ) { beginConnect(); return true; } return false; }
void Conn::setupPing(const boost::system::error_code& error) { if( error || !ping_enabled ) return; if( !sock.is_open() ) beginConnect(); //Write a ping packet into socket static const IProto::Header hdr{0xff00, 0}; static const IProto::PacketPtr pkt{hdr}; Write(IProto::Packet(&pkt), boost::bind(&Conn::pingCb, shared_from_this(), _1) ); }
bool TcpSocketImpl::beginConnect(System::EventLoop& loop, const Endpoint& ep, const TcpSocketOptions&) { log_trace("begin connect"); _errorPending = false; _addrInfo.resolve(ep); _addrInfoPtr = _addrInfo.begin(); return beginConnect(loop); }
void Conn::reconnect() { close(); if( LOG_DEBUG ) log_func("[iproto_conn] %s:%u reconnect", ep.address().to_string().c_str(), ep.port()); beginConnect(); }