int CHelperUnit::_pay_res(NETInputPacket* pack) { int ret = 0; int code = 0; string json, result; Reader r; Value v; unsigned long flow; CClientUnit *c; CDecoderUnit *d; NETOutputPacket out; CEncryptDecrypt ed; log_debug("-------- CHelperUnit::_pay_res begin --------"); code = pack->ReadByte(); json = pack->ReadString(); log_debug("ErrCode: %d", code); log_debug("JSON: %s", json.c_str()); if (r.parse(json, v)) { flow = v["flow"].asUInt64(); result = v["result"].asString(); out.Begin(SERVER_CMD_REP); out.WriteInt(0); out.WriteString(result); out.End(); } else { /* error handle */ out.Begin(SERVER_CMD_REP); out.WriteInt(1); out.WriteString(""); out.End(); log_debug("-------- CHelperUnit::_pay_res error --------"); ret = -1; } ed.EncryptBuffer(&out); /* 编码 */ c = _get_client_by_id(flow, &d); if (c && c->get_state() != CONN_FATAL_ERROR) { c->add_rsp_buf(out.packet_buf(), out.packet_size()); ret = c->send(); } log_debug("-------- CHelperUnit::_pay_res end --------"); return ret; }
void CentServer::OnConnect(CentHandler *pHandler ) { log_debug("OnConnect with hall\n"); // send the regist info ServerConfig_T cfg = g_GetConfigMgr().getServerConfig(); uint32 nGroupID = g_GetConfigMgr().getGroupID(); uint32 nType = g_GetConfigMgr().getServerType(); uint32 nServerID = g_GetConfigMgr().getServerID(); if( pHandler->GetHandlerType() == emCENTER_HANDLE ) { m_bIsConnect = true; log_debug("CentServer OnConnect \n"); NETOutputPacket packet; packet.Begin( SERVER_TO_CENTSERVER_REGIST ); packet.WriteShort( cfg.id ); packet.WriteShort( cfg.type ); packet.WriteString( cfg.host.c_str() ); packet.WriteInt( cfg.port ); packet.End(); pHandler->Send(&packet); log_debug("Send Resgist info %d \n",cfg.id); } else if ( pHandler->GetHandlerType() == emMONITER_HANDLE ) { log_debug( " CGameMgr::OnMonitorConnect. xMonitor. \n" ); NETOutputPacket packet; packet.Begin(Monitor::REGISTER_SERVER_REQUEST); packet.WriteInt(nServerID); packet.WriteInt(nType); packet.WriteInt(nGroupID); packet.End(); pHandler->Send(&packet); } }