/** * NMT_SERVERSHAKE - last part of the 3-way server handshake * Response: None * @param in * @param out */ void MetaServer::processSERVERSHAKE(const MetaServerPacket& in, MetaServerPacket& out) { unsigned int shake = in.getIntData(4); std::string ip = in.getAddressStr(); m_Logger.debug("processSERVERSHAKE(%u)", shake); /** * If a handshake exists, we can know the following: * 1) the client is valid * 2) they have a non-expired handshake * * What we do then is to: * 1) register a server session * 2) de-register the handshake ( maybe we just let it expire ? ) */ if( msdo.handshakeExists(shake) ) { std::stringstream ss; ss << in.getPort(); msdo.addServerSession(ip); msdo.addServerAttribute(ip,"port", ss.str() ); // clear stream first ss.str(""); ss << in.getAddressInt(); msdo.addServerAttribute(ip,"ip_int", ss.str() ); } }
void MetaServer::processCLIENTSHAKE(const MetaServerPacket& in, MetaServerPacket& out) { unsigned int shake = in.getIntData(4); std::string ip = in.getAddressStr(); m_Logger.debug("processCLIENTSHAKE(%u)", shake ); if( msdo.handshakeExists(shake) ) { std::stringstream ss; ss << in.getPort(); msdo.addClientSession(ip); msdo.addClientAttribute(ip,"port", ss.str() ); } }