Server* Server_listenAll(Config* config) { Server* servers = NULL; Bouncer* bouncer = config->bouncers; while (bouncer) { Server* server = Server_listen(config, bouncer); if (!server) { Server_freeList(&servers); return NULL; } server->next = servers; servers = server; bouncer = bouncer->next; } return servers; }
def(bool, Run) { Signal_listen(Signal_GetInstance()); Signal_uponTermination(Signal_GetInstance(), Signal_OnTerminate_For(this, ref(shutdown))); Server server = Server_new(HttpConnection_GetImpl(), &this->logger); try { Server_listen(&server, 8080); Logger_Info(&this->logger, $("Server started.")); } catch(SocketServer, AddressInUse) { Logger_Error(&this->logger, $("The address is already in use!")); excReturn false; } finally { } tryEnd; try { EventLoop_run(EventLoop_GetInstance()); } catchAny { Exception_Print(e); #if Exception_SaveTrace Backtrace_PrintTrace( Exception_GetTraceBuffer(), Exception_GetTraceLength()); #endif excReturn false; } finally { Server_destroy(&server); } tryEnd; return true; }