Dependencies.c (1442B)
1 #include <EGong/Util/Dependencies.h> 2 #include <EGong/Util/Log.h> 3 #include <stdlib.h> 4 #include <EGong/Util/Socket.h> 5 #include <EGong/Util/Waiter.h> 6 7 unsigned int EGong_dep_status=0; 8 9 10 int EGong_deps_init(unsigned int dependencies){ 11 if(DEP_REQ(dependencies, EGONG_DEP_SOCKETS)){ 12 do_log("Initializing sockets", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG); 13 if(EGong_sockets_setup()<0){ 14 do_log("Couldn't initialize sockets", LOG_TYPE_NORMAL, LOG_LEVEL_ERROR); 15 return -1; 16 } 17 else{ 18 EGong_dep_status|=EGONG_DEP_SOCKETS; 19 } 20 } 21 if(DEP_REQ(dependencies, EGONG_DEP_LISTENER)){ 22 do_log("Initializing Listener", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG); 23 if(EGong_deps_init(EGONG_DEP_SOCKETS)<0){ 24 return -1; 25 } 26 if(EGong_listener_init(NULL,NULL)<0){ 27 do_log("Couldn't initialize listener", LOG_TYPE_NORMAL, LOG_LEVEL_ERROR); 28 return -1; 29 } 30 else{ 31 EGong_waiter_add(EGong_listen_sock, EGONG_WAITER_SOCKET); 32 EGong_dep_status|=EGONG_DEP_LISTENER; 33 } 34 } 35 return 0; 36 } 37 38 int EGong_deps_deinit(unsigned int dependencies){ 39 if(DEP_STOP(dependencies, EGONG_DEP_SOCKETS)){ 40 do_log("Deinitializing sockets", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG); 41 EGong_sockets_shutdown(); 42 EGong_dep_status&=~EGONG_DEP_SOCKETS; 43 dependencies|=EGONG_DEP_LISTENER; 44 } 45 if(DEP_STOP(dependencies, EGONG_DEP_LISTENER)){ 46 do_log("Deinitializing Listener", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG); 47 EGong_listener_close(NULL); 48 EGong_dep_status&=~EGONG_DEP_LISTENER; 49 } 50 }