예제 #1
0
bool Conn::checkConnect() {
	if( unlikely(!sock.is_open()) ) {
		beginConnect();
		return true;
	}
	return false;
}
예제 #2
0
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)  );
}
예제 #3
0
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);
}
예제 #4
0
void Conn::reconnect() {
	close();
	if( LOG_DEBUG )
		log_func("[iproto_conn] %s:%u reconnect", ep.address().to_string().c_str(), ep.port());
	beginConnect();
}