void update_master_route_serv_conn() { uint64_t oldest_connect_time = (uint64_t)-1; CRouteServConn* pOldestConn = NULL; CRouteServConn* pConn = NULL; for (uint32_t i = 0; i < g_route_server_count; i++) { pConn = (CRouteServConn*)g_route_server_list[i].serv_conn; if (pConn && pConn->IsOpen() && (pConn->GetConnectTime() < oldest_connect_time) ){ pOldestConn = pConn; oldest_connect_time = pConn->GetConnectTime(); } } g_master_rs_conn = pOldestConn; if (g_master_rs_conn) { IM::Server::IMRoleSet msg; msg.set_master(1); CImPdu pdu; pdu.SetPBMsg(&msg); pdu.SetServiceId(SID_OTHER); pdu.SetCommandId(CID_OTHER_ROLE_SET); g_master_rs_conn->SendPdu(&pdu); } }
void send_to_all_route_server(CImPdu* pPdu) { CRouteServConn* pConn = NULL; for (uint32_t i = 0; i < g_route_server_count; i++) { pConn = (CRouteServConn*)g_route_server_list[i].serv_conn; if (pConn && pConn->IsOpen()) { pConn->SendPdu(pPdu); } } }
bool is_route_server_available() { CRouteServConn* pConn = NULL; for (uint32_t i = 0; i < g_route_server_count; i++) { pConn = (CRouteServConn*)g_route_server_list[i].serv_conn; if (pConn && pConn->IsOpen()) { return true; } } return false; }
void update_master_route_serv_conn() { uint64_t oldest_connect_time = (uint64_t)-1; CRouteServConn* pOldestConn = NULL; CRouteServConn* pConn = NULL; for (uint32_t i = 0; i < g_route_server_count; i++) { pConn = (CRouteServConn*)g_route_server_list[i].serv_conn; if (pConn && pConn->IsOpen() && (pConn->GetConnectTime() < oldest_connect_time) ){ pOldestConn = pConn; oldest_connect_time = pConn->GetConnectTime(); } } g_master_rs_conn = pOldestConn; if (g_master_rs_conn) { CImPduRoleSet pdu(1); g_master_rs_conn->SendPdu(&pdu); } }