- while ((ret = options("a:iszSl:v:u:c:w:t:k:", argv, argc, &arg)) != -2)
- {
- switch (ret)
- {
- case 0:
- add_listener(arg, protocol);
- listeners++;
- break;
- case 'z': protocol = PROTO_Z3950; break;
- case 's': protocol = PROTO_SR; break;
- case 'S': control_block.dynamic = 0; break;
- case 'l':
- strcpy(control_block.logfile, arg ? arg : "");
- log_init(control_block.loglevel, me, control_block.logfile);
- break;
- case 'v':
- control_block.loglevel = log_mask_str(arg);
- log_init(control_block.loglevel, me, control_block.logfile);
- break;
- case 'a':
- strcpy(control_block.apdufile, arg ? arg : ""); break;
- case 'u':
- strcpy(control_block.setuid, arg ? arg : ""); break;
- case 'c':
- strcpy(control_block.configname, arg ? arg : ""); break;
- case 't':
- if (!arg || !(r = atoi(arg)))
- {
- fprintf(stderr, "%s: Specify positive timeout for -t.\n",
- me);
- return(1);
- }
- control_block.idle_timeout = r;
- break;
- case 'k':
- if (!arg || !(r = atoi(arg)))
- {
- fprintf(stderr, "%s: Specify positive timeout for -t.\n",
- me);
- return(1);
- }
- control_block.maxrecordsize = r * 1024;
- break;
- case 'i':
- inetd = 1; break;
- case 'w':
- if (chdir(arg))
- {
- perror(arg);
-
- return(1);
- }
- break;
- default:
- fprintf(stderr, "Usage: %s [ -i -a <pdufile> -v <loglevel>"
- " -l <logfile> -u <user> -c <config> -t <minutes>"
- " -k <kilobytes>"
- " -zsS <listener-addr> -w <directory> ... ]\n", me);
- return(1);
- }
- }
-
- if ((pListener == NULL) && *control_block.default_listen)
- add_listener(control_block.default_listen, protocol);