X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=server%2Fstatserv.c;h=89626f4d804d1b018fbd680a28ad1d781a7a114a;hp=7a938e366fe0a02899435ab7f2e1f596cd5a68a1;hb=1ff3deef138c1f1af5f435c4931f61e5b1595372;hpb=7e158942eb374e7211dd3dbd834e664c70a2d143 diff --git a/server/statserv.c b/server/statserv.c index 7a938e3..89626f4 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: statserv.c,v $ - * Revision 1.1 1995-03-10 18:22:45 quinn + * Revision 1.3 1995-03-14 11:30:15 quinn + * Works better now. + * + * Revision 1.2 1995/03/14 10:28:03 quinn + * More work on demo server. + * + * Revision 1.1 1995/03/10 18:22:45 quinn * The rudiments of an asynchronous server. * */ @@ -16,7 +22,13 @@ #include +#include +#include +#include #include +#include +#include +#include static char *me = ""; @@ -26,6 +38,7 @@ static char *me = ""; void listener(IOCHAN h, int event) { COMSTACK line = (COMSTACK) iochan_getdata(h); + association *newas; if (event == EVENT_INPUT) { @@ -36,7 +49,7 @@ 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_setflags(h, EVENT_OUTPUT); /* set us up for accepting */ } else if (event == EVENT_OUTPUT) { @@ -48,12 +61,18 @@ void listener(IOCHAN h, int event) fprintf(stderr, "Accept failed.\n"); exit(1); } - if (!(new_chan = iochan_create(cs_fileno(initializer, init_fun, - EVENT_INPUT)))) + if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session, + EVENT_INPUT))) { fprintf(stderr, "Failed to create iochan\n"); exit(1); } + if (!(newas = create_association(new_chan, new_line))) + { + fprintf(stderr, "Failed to create new assoc.\n"); + exit(1); + } + iochan_setdata(new_chan, newas); iochan_setflags(h, EVENT_INPUT); /* reset for listening */ } else @@ -70,7 +89,7 @@ void add_listener(char *where) { COMSTACK l; CS_TYPE type; - char mode[100], addr[100] + char mode[100], addr[100]; void *ap; IOCHAN lst; @@ -82,22 +101,24 @@ void add_listener(char *where) } if (!strcmp(mode, "tcp")) { - if (!(ap = tcpip_strtoaddr(where))) + if (!(ap = tcpip_strtoaddr(addr))) { fprintf(stderr, "Address resolution failed for TCP.\n"); exit(1); } type = tcpip_type; } +#if 0 else if (!strcmp(mode, "osi")) { - if (!(ap = mosi_strtoaddr(where))) + if (!(ap = mosi_strtoaddr(addr))) { fprintf(stderr, "Address resolution failed for TCP.\n"); exit(1); } type = mosi_type; } +#endif else { fprintf(stderr, "You must specify either 'osi:' or 'tcp:'.\n"); @@ -131,7 +152,7 @@ int main(int argc, char **argv) switch (ret) { case 0: me = arg; break; - case 'l': add_listener(arg); l++; break; + case 'l': add_listener(arg); listeners++; break; default: fprintf(stderr, "Usage: %s [-l ]\n", me); exit(1);