/* * @brief */ void Netchan_Shutdown(void) { Net_Config(NS_UDP_CLIENT, false); Net_Config(NS_UDP_SERVER, false); Net_Shutdown(); }
/* * @brief */ void Net_Shutdown(void) { Net_Config(NS_CLIENT, false); // close client socket Net_Config(NS_SERVER, false); // and server socket #ifdef _WIN32 WSACleanup(); #endif }
/* * Sv_Shutdown * * Called when server is shutting down due to error or an explicit `quit`. */ void Sv_Shutdown(const char *msg) { Sv_ShutdownServer(msg); Sv_ShutdownMasters(); Net_Config(NS_SERVER, false); Sb_Init(&net_message, net_message_buffer, sizeof(net_message_buffer)); memset(&svs, 0, sizeof(svs)); }
/* * @brief Only called at Quake2World startup, not for each game. */ void Sv_Init(void) { memset(&svs, 0, sizeof(svs)); Sv_InitLocal(); Sv_InitCommands(); Sv_InitMasters(); Mem_InitBuffer(&net_message, net_message_buffer, sizeof(net_message_buffer)); Net_Config(NS_UDP_SERVER, true); }
/* * @brief Called when server is shutting down due to error or an explicit `quit`. */ void Sv_Shutdown(const char *msg) { Sv_ShutdownServer(msg); Sv_ShutdownMasters(); Net_Config(NS_UDP_SERVER, false); Mem_InitBuffer(&net_message, net_message_buffer, sizeof(net_message_buffer)); memset(&svs, 0, sizeof(svs)); Cmd_RemoveAll(CMD_SERVER); Mem_FreeTag(MEM_TAG_SERVER); }
/* * Sv_Init * * Only called at Quake2World startup, not for each game. */ void Sv_Init(void) { memset(&svs, 0, sizeof(svs)); sv_rcon_password = Cvar_Get("rcon_password", "", 0, NULL); sv_download_url = Cvar_Get("sv_download_url", "", CVAR_SERVER_INFO, NULL); sv_enforce_time = Cvar_Get("sv_enforce_time", va("%d", CMD_MSEC_MAX_DRIFT_ERRORS), 0, NULL); sv_hostname = Cvar_Get("sv_hostname", "Quake2World", CVAR_SERVER_INFO | CVAR_ARCHIVE, NULL); sv_public = Cvar_Get("sv_public", "0", 0, NULL); if (dedicated->value) sv_max_clients = Cvar_Get("sv_max_clients", "8", CVAR_SERVER_INFO | CVAR_LATCH, NULL); else sv_max_clients = Cvar_Get("sv_max_clients", "1", CVAR_SERVER_INFO | CVAR_LATCH, NULL); sv_framerate = Cvar_Get("sv_framerate", va("%d", SERVER_FRAME_RATE), CVAR_SERVER_INFO | CVAR_LATCH, NULL); sv_timeout = Cvar_Get("sv_timeout", va("%d", SERVER_TIMEOUT), 0, NULL); sv_udp_download = Cvar_Get("sv_udp_download", "1", CVAR_ARCHIVE, NULL); // set this so clients and server browsers can see it Cvar_Get("sv_protocol", va("%i", PROTOCOL), CVAR_SERVER_INFO | CVAR_NO_SET, NULL); Sv_InitCommands(); Sv_InitMasters(); Sb_Init(&net_message, net_message_buffer, sizeof(net_message_buffer)); Net_Config(NS_SERVER, true); }