示例#1
0
/**
 * @brief Callback for subsystem failures. Depending on the severity, we may try to
 * recover, or we may shut the entire engine down and exit.
 */
static void Error(err_t err, const char *msg) {

	if (quetoo.debug_mask & DEBUG_BREAKPOINT) {
		SDL_TriggerBreakpoint();
	}

	Print(va("^1%s\n", msg));

	if (err == ERROR_DROP && !jmp_set) {
		err = ERROR_FATAL;
	}

	switch (err) {
		case ERROR_DROP:
			Sv_ShutdownServer(msg);
			Cl_Disconnect();
			quetoo.recursive_error = false;
			longjmp(env, err);
			break;

		case ERROR_FATAL:
		default:
			Sys_Backtrace();
			Shutdown(msg);
			exit(err);
			break;
	}
}
示例#2
0
文件: sv_main.c 项目: darkshade9/aq2w
/*
 * 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));
}
示例#3
0
文件: sv_main.c 项目: chrisnew/quetoo
/*
 * @brief Called when server is shutting down due to error or an explicit `quit`.
 */
void Sv_Shutdown(const char *msg) {

	Sv_ShutdownServer(msg);

	Sv_ShutdownConsole();

	memset(&svs, 0, sizeof(svs));

	Cmd_RemoveAll(CMD_SERVER);

	Mem_FreeTag(MEM_TAG_SERVER);
}
示例#4
0
/*
 * @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);
}
示例#5
0
文件: cl_main.c 项目: chrisnew/quetoo
/*
 * @brief
 */
static void Cl_Connect_f(void) {

	if (Cmd_Argc() != 2) {
		Com_Print("Usage: %s <address>\n", Cmd_Argv(0));
		return;
	}

	if (Com_WasInit(QUETOO_SERVER)) { // if running a local server, kill it
		Sv_ShutdownServer("Server quit\n");
	}

	Cl_Disconnect();

	strncpy(cls.server_name, Cmd_Argv(1), sizeof(cls.server_name));
	cls.server_name[sizeof(cls.server_name) - 1] = '\0';

	cls.state = CL_CONNECTING;
	cls.connect_time = 0; // fire immediately
}