X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=server%2Fstatserv.c;h=9146973a74fef06f7e0769edd85bcfbe682692c0;hp=6abbe443e3accb8b98cd925145a50940cbcc81c2;hb=f69d4aa4609ff3daa71733da1ea0fcd8322ab954;hpb=48096bb041fcc45b11666ad058963a633a0ec3db diff --git a/server/statserv.c b/server/statserv.c index 6abbe44..9146973 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -7,7 +7,14 @@ * Chas Woodfield, Fretwell Downing Datasystems. * * $Log: statserv.c,v $ - * Revision 1.50 1998-06-22 11:32:39 adam + * Revision 1.52 1998-08-21 14:13:34 adam + * Added GNU Configure script to build Makefiles. + * + * 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 @@ -724,6 +731,7 @@ static void add_listener(char *where, int what) if (!(l = cs_create(type, 0, what))) { logf(LOG_FATAL|LOG_ERRNO, "Failed to create listener"); + return; } ap = cs_straddr (l, addr); if (!ap) @@ -735,11 +743,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 +834,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; }