예제 #1
0
파일: server.c 프로젝트: bioboy/ebbnc2
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;
}
예제 #2
0
파일: httpd.c 프로젝트: tindzk/Jivai
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;
}