From 348e11131385e72241a04997e90c8c77147e6423 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Tue, 7 Jul 1998 15:51:03 +0000 Subject: [PATCH] Changed server so that it stops if bind fails - "address already in use" typically causes this. --- server/statserv.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/server/statserv.c b/server/statserv.c index 6abbe44..2a0527c 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -7,7 +7,11 @@ * Chas Woodfield, Fretwell Downing Datasystems. * * $Log: statserv.c,v $ - * Revision 1.50 1998-06-22 11:32:39 adam + * Revision 1.51 1998-07-07 15:51:03 adam + * Changed server so that it stops if bind fails - "address already in + * use" typically causes this. + * + * Revision 1.50 1998/06/22 11:32:39 adam * Added 'conditional cs_listen' feature. * * Revision 1.49 1998/02/27 14:04:55 adam @@ -735,11 +739,15 @@ static void add_listener(char *where, int what) if (cs_bind(l, ap, CS_SERVER) < 0) { logf(LOG_FATAL|LOG_ERRNO, "Failed to bind to %s", where); + cs_close (l); + return; } if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT | EVENT_EXCEPT))) { logf(LOG_FATAL|LOG_ERRNO, "Failed to create IOCHAN-type"); + cs_close (l); + return; } iochan_setdata(lst, l); @@ -822,12 +830,14 @@ int statserv_start(int argc, char **argv) if ((pListener == NULL) && *control_block.default_listen) add_listener(control_block.default_listen, control_block.default_proto); - logf(LOG_LOG, "Entering event loop."); if (pListener == NULL) ret = 1; else + { + logf(LOG_LOG, "Entering event loop."); ret = event_loop(&pListener); + } nmem_exit (); return ret; } -- 1.7.10.4