int main(int argc,char **argv) { int next; do_socket(); #ifdef _WIN32 atexit(sig_proc); #else signal(SIGPIPE,SIG_IGN); signal(SIGTERM,sig_proc); signal(SIGINT,sig_proc); #endif do_init(argc,argv); if (packet_parse_time > 0) { add_timer_func_list(parsepacket_timer,"parsepacket_timer"); add_timer_interval(gettick()+packet_parse_time,parsepacket_timer,0,0,packet_parse_time); while(1){ next=do_timer(gettick_nocache()); do_sendrecv(next); } } else { while(1){ next=do_timer(gettick_nocache()); do_sendrecv(next); do_parsepacket(); } } return 0; }
int main(int argc, char **argv) { if (argc > 1) for (int i = 0; i < argc; i++) if (strncmp(argv[i], "test", 4)==0){ Test *test = new Test(); test->run(); } ShowInfo(CL_MAGENTA"WarGames Server"CL_RESET"\n"); //init sockets socket_init(); server_init(); timer_init(); fd_set readfd; { int next; while (true) { next = CTaskMgr::getInstance()->DoTimer(gettick_nocache()); process_sockets(&readfd, next); } } }
unsigned int gettick(void) { gettick_count--; if(gettick_count<0) return gettick_nocache(); return gettick_cache; }
/*====================================== * CORE : MAINROUTINE *--------------------------------------*/ int main (int argc, char **argv) { {// initialize program arguments char *p1 = SERVER_NAME = argv[0]; char *p2 = p1; while ((p1 = strchr(p2, '/')) != NULL || (p1 = strchr(p2, '\\')) != NULL) { SERVER_NAME = ++p1; p2 = p1; } arg_c = argc; arg_v = argv; } malloc_init();// needed for Show* in display_title() [FlavioJS] #ifdef MINICORE // minimalist Core display_title(); usercheck(); do_init(argc,argv); do_final(); #else// not MINICORE set_server_type(); display_title(); usercheck(); db_init(); signals_init(); timer_init(); socket_init(); plugins_init(); do_init(argc,argv); plugin_event_trigger(EVENT_ATHENA_INIT); {// Main runtime cycle int next; while (runflag != CORE_ST_STOP) { next = do_timer(gettick_nocache()); do_sockets(next); } } plugin_event_trigger(EVENT_ATHENA_FINAL); do_final(); timer_final(); plugins_final(); socket_final(); db_final(); #endif malloc_final(); return 0; }
/*====================================== * CORE : MAINROUTINE *--------------------------------------*/ int main (int argc, char **argv) { { // Inicializa os argumentos do programa char *p1 = SERVER_NAME = argv[0]; char *p2 = p1; while ( (p1 = strchr (p2, '/')) != NULL || (p1 = strchr (p2, '\\')) != NULL) { SERVER_NAME = ++p1; p2 = p1; } arg_c = argc; arg_v = argv; } malloc_init(); // needed for Show* in display_title() [FlavioJS] #ifndef _WIN32 usercheck(); #endif #ifdef MINICORE // minimalist Core display_title(); do_init (argc, argv); do_final(); #else// not MINICORE set_server_type(); // Define o tipo de servidor (função exclusiva de cada servidor) display_title(); // Mostra o título db_init(); signals_init(); #ifdef _WIN32 cevents_init(); #endif timer_init(); socket_init(); do_init (argc, argv); // Inicializa as funções do servidor { // Ciclo principal do servidor int next; // Enquanto a runflag não for a de Parar, o servidor rodará; do contrário, entrará em processo de finalização while (runflag != CORE_ST_STOP) { next = do_timer (gettick_nocache()); do_sockets (next); } } do_final(); timer_final(); socket_final(); db_final(); #endif malloc_final(); return 0; }
int main (int argc, char **argv) { int next; // initialise program arguments { char *p = SERVER_NAME = argv[0]; while ((p = strchr(p, '/')) != NULL) SERVER_NAME = ++p; arg_c = argc; arg_v = argv; } set_server_type(); display_title(); usercheck(); malloc_init(); /* 一番最初に実行する必要がある */ db_init(); signals_init(); timer_init(); socket_init(); plugins_init(); do_init(argc,argv); graph_init(); plugin_event_trigger("Athena_Init"); while (runflag) { next = do_timer(gettick_nocache()); do_sendrecv(next); #ifndef TURBO do_parsepacket(); #endif } plugin_event_trigger("Athena_Final"); graph_final(); do_final(); timer_final(); plugins_final(); socket_final(); db_final(); malloc_final(); return 0; }
int main(int argc,char **argv) { int next; do_socket(); signal(SIGPIPE,SIG_IGN); signal(SIGTERM,sig_proc); signal(SIGINT,sig_proc); do_init(argc,argv); while(1){ next=do_timer(gettick_nocache()); do_sendrecv(next); do_parsepacket(); } return 0; }
int main (int argc, char **argv) { {// initialize program arguments char *p1 = SERVER_NAME = argv[0]; char *p2 = p1; while ((p1 = strchr(p2, '/')) != NULL || (p1 = strchr(p2, '\\')) != NULL) { SERVER_NAME = ++p1; p2 = p1; } arg_c = argc; arg_v = argv; } malloc_init(); set_server_type(); display_title(); usercheck(); signals_init(); timer_init(); socket_init(); do_init(argc,argv); {// Main runtime cycle int next; while (runflag) { next = CTaskMgr::getInstance()->DoTimer(gettick_nocache()); do_sockets(next); } } do_final(); timer_final(); socket_final(); malloc_final(); return 0; }
/*====================================== * CORE : MAINROUTINE *--------------------------------------*/ int main (int argc, char **argv) { {// initialize program arguments char *p1; if((p1 = strrchr(argv[0], '/')) != NULL || (p1 = strrchr(argv[0], '\\')) != NULL ){ char *pwd = NULL; //path working directory int n=0; SERVER_NAME = ++p1; n = p1-argv[0]; //calc dir name len pwd = safestrncpy(malloc(n + 1), argv[0], n); if(chdir(pwd) != 0) ShowError("Couldn't change working directory to %s for %s, runtime will probably fail",pwd,SERVER_NAME); free(pwd); } } malloc_init();// needed for Show* in display_title() [FlavioJS] #ifdef MINICORE // minimalist Core display_title(); usercheck(); do_init(argc,argv); do_final(); #else// not MINICORE set_server_type(); display_title(); usercheck(); Sql_Init(); rathread_init(); mempool_init(); db_init(); signals_init(); #ifdef _WIN32 cevents_init(); #endif timer_init(); socket_init(); do_init(argc,argv); // Main runtime cycle while (runflag != CORE_ST_STOP) { int next = do_timer(gettick_nocache()); do_sockets(next); } do_final(); timer_final(); socket_final(); db_final(); mempool_final(); rathread_final(); ers_final(); #endif malloc_final(); return 0; }
/*====================================== * CORE : MAINROUTINE *--------------------------------------*/ int main (int argc, char **argv) { {// Inicializa os argumentos do programa char *p1 = SERVER_NAME = argv[0]; char *p2 = p1; while ((p1 = strchr(p2, '/')) != NULL || (p1 = strchr(p2, '\\')) != NULL) { SERVER_NAME = ++p1; p2 = p1; } arg_c = argc; arg_v = argv; } // Não precisamos chamar o malloc_init se o Memory Manager não está ativo [Keoy] #ifdef USE_MEMMGR malloc_init(); // needed for Show* in display_title() [FlavioJS] #endif #ifdef MINICORE // minimalist Core display_title(); #ifndef _WIN32 usercheck(); #endif do_init(argc,argv); do_final(); #else// not MINICORE set_server_type(); // Define o tipo de servidor (função exclusiva de cada servidor) display_title(); // Mostra o título // Não precisamos verificar se estamos em root se não estamos em um sistema WIN32 [Keoy] #ifndef _WIN32 usercheck(); #endif db_init(); signals_init(); timer_init(); socket_init(); plugins_init(); do_init(argc,argv); // Inicializa as funções do servidor plugin_event_trigger(EVENT_ATHENA_INIT); // Evento inicial dos plugins {// Ciclo principal do servidor int next; // Enquanto a runflag for verdadeira (1) o servidor rodará, do contrário entrará em processo de finalização while (runflag) { next = do_timer(gettick_nocache()); do_sockets(next); } } plugin_event_trigger(EVENT_ATHENA_FINAL); // Evento final dos plugins do_final(); timer_final(); plugins_final(); socket_final(); db_final(); #endif // Não precisamos chamar o malloc_init se o Memory Manager não está ativo [Keoy] #ifdef USE_MEMMGR malloc_final(); #endif return 0; }
unsigned int gettick(void) { return ( --gettick_count == 0 ) ? gettick_nocache() : gettick_cache; }