X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=server%2Fstatserv.c;h=05317980df2d1b4c9b8db1f0de0f37d9b9d764d6;hb=74c93e64254dddb35f08ec54ee401fc85d3f8cb7;hp=1ceae5869793ce9be9fb5eef460ccc9a4cced19d;hpb=a4d2b1d22b135d53d88c96a452a62d3009197d29;p=yaz-moved-to-github.git diff --git a/server/statserv.c b/server/statserv.c index 1ceae58..0531798 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -4,7 +4,20 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: statserv.c,v $ - * Revision 1.4 1995-03-14 16:59:48 quinn + * Revision 1.8 1995-03-20 09:46:26 quinn + * Added osi support. + * + * Revision 1.7 1995/03/16 13:29:04 quinn + * Partitioned server. + * + * Revision 1.6 1995/03/15 15:18:52 quinn + * Little changes to better support nonblocking I/O + * Added backend.h + * + * Revision 1.5 1995/03/15 08:37:45 quinn + * Now we're pretty much set for nonblocking I/O. + * + * Revision 1.4 1995/03/14 16:59:48 quinn * Bug-fixes * * Revision 1.3 1995/03/14 11:30:15 quinn @@ -33,6 +46,9 @@ #include #include +#include +#include + static char *me = ""; #define DEFAULT_LISTENER "tcp:localhost:9999" @@ -54,7 +70,8 @@ void listener(IOCHAN h, int event) fprintf(stderr, "cs_listen failed.\n"); exit(1); } - iochan_setflags(h, EVENT_OUTPUT); /* set us up for accepting */ + iochan_setevent(h, EVENT_OUTPUT); + iochan_setflags(h, EVENT_OUTPUT | EVENT_EXCEPT); /* set up for acpt */ } else if (event == EVENT_OUTPUT) { @@ -78,7 +95,7 @@ void listener(IOCHAN h, int event) exit(1); } iochan_setdata(new_chan, newas); - iochan_setflags(h, EVENT_INPUT); /* reset for listening */ + iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset for listen */ } else { @@ -114,7 +131,6 @@ void add_listener(char *where) } type = tcpip_type; } -#if 0 else if (!strcmp(mode, "osi")) { if (!(ap = mosi_strtoaddr(addr))) @@ -124,13 +140,12 @@ void add_listener(char *where) } type = mosi_type; } -#endif else { fprintf(stderr, "You must specify either 'osi:' or 'tcp:'.\n"); exit(1); } - if (!(l = cs_create(type, 1))) + if (!(l = cs_create(type, 0))) { fprintf(stderr, "Failed to create listener\n"); exit(1); @@ -141,7 +156,8 @@ void add_listener(char *where) perror(where); exit(1); } - if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT))) + if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT | + EVENT_EXCEPT))) { fprintf(stderr, "Failed to create IOCHAN-type\n"); exit(1); @@ -149,7 +165,7 @@ void add_listener(char *where) iochan_setdata(lst, l); } -int main(int argc, char **argv) +int statserv_main(int argc, char **argv) { int ret, listeners = 0; char *arg;