Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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);
	}
}