void ServerFree(TServer *srv);
-void ServerInit(TServer *srv);
+int ServerInit(TServer *srv);
void ServerRun(TServer *srv);
void ServerRunOnce(TServer *srv);
void ServerRunOnce2(TServer * const srv,
SocketClose(&(c->socket));
}
-void ServerInit(TServer *srv)
+int ServerInit(TServer *srv)
{
/********* Must check errors from these functions *************/
- if (!SocketInit())
- TraceExit("Can't initialize TCP sockets\n");;
-
- if (!SocketCreate(&srv->listensock))
- TraceExit("Can't create a socket\n");;
-
- if (!SocketBind(&srv->listensock,NULL,srv->port))
- TraceExit("Can't bind\n");
-
- if (!SocketListen(&srv->listensock,MAX_CONN))
- TraceExit("Can't listen\n");
+ if (!SocketInit()) {
+ TraceMsg("Can't initialize TCP sockets\n");
+ return FALSE;
+ }
+
+ if (!SocketCreate(&srv->listensock)) {
+ TraceMsg("Can't create a socket\n");
+ return FALSE;
+ }
+
+ if (!SocketBind(&srv->listensock,NULL,srv->port)) {
+ TraceMsg("Can't bind\n");
+ return FALSE;
+ }
+
+ if (!SocketListen(&srv->listensock,MAX_CONN)) {
+ TraceMsg("Can't listen\n");
+ return FALSE;
+ }
+
+ return TRUE;
}
/* With pthread configuration, our connections run as threads of a
xmlrpc_server_abyss_set_handler(&env, &abyssServer, "/RPC2", registryP);
- ServerInit(&abyssServer);
+ if (ServerInit(&abyssServer) != TRUE) {
+ globals.running = 0;
+ return SWITCH_STATUS_FALSE;
+ }
+
ServerAddHandler(&abyssServer, HandleHook);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Starting HTTP Port %d, DocRoot [%s]\n", globals.port, SWITCH_GLOBAL_dirs.htdocs_dir);