X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fstatserv.c;h=aa68bc13bda866f646389e2a945c06ea23c7a1dc;hb=657fb99115b87a5244e9a33bbe4ca3d9d18849c4;hp=876328e3696b5c60f648061b45d364c515ee1c3d;hpb=a7b235097c10590dde6dfa1859590d4c4e930366;p=yaz-moved-to-github.git diff --git a/server/statserv.c b/server/statserv.c index 876328e..aa68bc1 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -4,7 +4,19 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: statserv.c,v $ - * Revision 1.23 1995-06-15 12:30:48 quinn + * Revision 1.27 1995-09-27 15:03:02 quinn + * Modified function heads & prototypes. + * + * Revision 1.26 1995/08/29 14:44:51 quinn + * Reset timeouts. + * + * Revision 1.25 1995/08/29 11:18:02 quinn + * Added code to receive close + * + * Revision 1.24 1995/06/16 10:31:39 quinn + * Added session timeout. + * + * Revision 1.23 1995/06/15 12:30:48 quinn * Setuid-facility. * * Revision 1.22 1995/06/15 07:45:17 quinn @@ -90,6 +102,7 @@ #include #include #include +#include #include #include @@ -113,10 +126,10 @@ static statserv_options_block control_block = { LOG_DEFAULT_LEVEL, /* log level */ "", /* no PDUs */ "", /* diagnostic output to stderr */ - "tcp:@:9999", /* default listener port */ - PROTO_Z3950, /* application protocol */ - 60, /* idle timeout (minutes) */ - 1024*1024*4, /* maximum PDU size (approx.) to allow */ + "tcp:@:9999", /* default listener port */ + PROTO_Z3950, /* default application protocol */ + 2*60, /* idle timeout (minutes) */ + 1024*1024, /* maximum PDU size (approx.) to allow */ "default-config", /* configuration name to pass to backend */ "" /* set user id */ }; @@ -237,6 +250,7 @@ static void listener(IOCHAN h, int event) exit(1); } iochan_setdata(new_chan, newas); + iochan_settimeout(new_chan, control_block.idle_timeout * 60); logf(LOG_LOG, "accepted connection"); } else @@ -272,17 +286,20 @@ static void add_listener(char *where, int what) } type = tcpip_type; } -#ifdef USE_XTIMOSI else if (!strcmp(mode, "osi")) { +#ifdef USE_XTIMOSI if (!(ap = mosi_strtoaddr(addr))) { fprintf(stderr, "Address resolution failed for TCP.\n"); exit(1); } type = mosi_type; - } +#else + fprintf(stderr, "OSI Transport not allowed by configuration.\n"); + exit(1); #endif + } else { fprintf(stderr, "You must specify either 'osi:' or 'tcp:'.\n"); @@ -317,7 +334,7 @@ static void catchchld(int num) signal(SIGCHLD, catchchld); } -statserv_options_block *statserv_getcontrol(void) +statserv_options_block MDF *statserv_getcontrol(void) { static statserv_options_block cb; @@ -325,12 +342,12 @@ statserv_options_block *statserv_getcontrol(void) return &cb; } -void statserv_setcontrol(statserv_options_block *block) +void MDF statserv_setcontrol(statserv_options_block *block) { memcpy(&control_block, block, sizeof(*block)); } -int statserv_main(int argc, char **argv) +int MDF statserv_main(int argc, char **argv) { int ret, listeners = 0; char *arg; @@ -375,7 +392,7 @@ int statserv_main(int argc, char **argv) if (!(pw = getpwnam(control_block.setuid))) { - logf(LOG_FATAL|LOG_ERRNO, "%s", control_block.setuid); + logf(LOG_FATAL, "%s: Unknown user", control_block.setuid); exit(1); } if (setuid(pw->pw_uid) < 0)