DWORD WINAPI GetServerPingsAndInfosProc(void * lpParameter) { unsigned int SB_Sources_Marked_Count(void); extern cvar_t sb_listcache; extern void SB_Serverlist_Serialize_f(); int full = (int) lpParameter; abort_ping = 0; if (full || serversn_passed == 0) { if (SB_Sources_Marked_Count() == 0) { // ensure some sources are marked, otherwise the refresh makes no sense MarkDefaultSources(); } SB_Sources_Update(true); if (useNewPing) { // New Ping = UPD QW Packet ping using 2 threads (sender and receiver) PingHosts(servers, serversn, sb_pings.integer); } else { // Old Ping = ICMP PING Packet using single thread oldPingHosts(servers, serversn, sb_pings.integer ); } } if (!abort_ping) { ping_phase = 2; GetServerInfosProc(NULL); } /* if (abort_ping) Sys_MSleep(500); // let the packets end the road */ resort_servers = 1; rebuild_all_players = 1; ping_phase = 0; TP_ExecTrigger("f_sbrefreshdone"); if (sb_listcache.integer) { SB_Serverlist_Serialize_f(); } if (sb_findroutes.integer && (full || !SB_PingTree_Built())) { SB_PingTree_Build(); } serverinfo_lock = 0; return 0; }
static void ResetMiscCommands(void) { Cbuf_AddText("mapgroup clear\n"); Cbuf_AddText("skygroup clear\n"); MarkDefaultSources(); Info_RemoveKey(cls.userinfo, "ec"); Info_RemoveKey(cls.userinfo, "exec_class"); Info_RemoveKey(cls.userinfo, "em"); Info_RemoveKey(cls.userinfo, "exec_map"); }