int main(int argc, char **argv) { char *arg; int i, ret; int level = YLOG_LOG; int number = 1; unsigned int wait_between_log = 0; while ((ret = options("f:p:v:l:m:n:r:w:Hh", argv, argc, &arg)) != -2) { switch (ret) { case 'r': yaz_log_init_max_size(atoi(arg)); break; case 'f': yaz_log_time_format(arg); break; case 'p': yaz_log_init_prefix(arg); break; case 'v': yaz_log_init_level(yaz_log_mask_str(arg)); break; case 'l': if (!strcmp(arg, "@")) yaz_log_init_file(0); else yaz_log_init_file(arg); break; case 'n': number = atoi(arg); break; case 'm': level = yaz_log_module_level(arg); break; case 'w': wait_between_log = atoi(arg); break; case 'H': yaz_log_set_handler(hook_func, 0); break; case 0: for (i = 0; i<number; i++) { yaz_log(level, "%d %s", i, arg); #if HAVE_UNISTD_H if (wait_between_log) sleep(wait_between_log); #endif } break; case 'h': default: fprintf(stderr, "tstlog [-f logformat] [-v level] [-l file] " "[-p prefix] [-m module] [-w sec] [-r max] [-n num] [-H] msg ..\n"); exit(1); } } exit(0); }
int check_options(int argc, char **argv) { int ret = 0, r; char *arg; yaz_log_init_level(yaz_log_mask_str(STAT_DEFAULT_LOG_LEVEL)); get_logbits(1); while ((ret = options("1a:iszSTl:v:u:c:w:t:k:d:A:p:DC:f:m:r:", argv, argc, &arg)) != -2) { switch (ret) { case 0: if (add_listener(arg, 0)) return 1; /* failed to create listener */ break; case '1': control_block.one_shot = 1; control_block.dynamic = 0; break; case 'z': control_block.default_proto = PROTO_Z3950; break; case 's': fprintf(stderr, "%s: SR protocol no longer supported\n", me); exit(1); break; case 'S': control_block.dynamic = 0; break; case 'T': #if YAZ_POSIX_THREADS control_block.dynamic = 0; control_block.threads = 1; #elif YAZ_GNU_THREADS control_block.dynamic = 0; control_block.threads = 1; #else fprintf(stderr, "%s: Threaded mode not available.\n", me); return 1; #endif break; case 'l': option_copy(control_block.logfile, arg); yaz_log_init_file(control_block.logfile); break; case 'm': if (!arg) { fprintf(stderr, "%s: Specify time format for log file.\n", me); return(1); } yaz_log_time_format(arg); break; case 'v': yaz_log_init_level(yaz_log_mask_str(arg)); get_logbits(1); break; case 'a': option_copy(control_block.apdufile, arg); break; case 'u': option_copy(control_block.setuid, arg); break; case 'c': option_copy(control_block.configname, arg); break; case 'C': option_copy(control_block.cert_fname, arg); break; case 'd': option_copy(control_block.daemon_name, 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 size for -k.\n", me); return(1); } control_block.maxrecordsize = r * 1024; break; case 'i': control_block.inetd = 1; break; case 'w': if (chdir(arg)) { perror(arg); return 1; } break; case 'A': max_sessions = atoi(arg); break; case 'p': option_copy(control_block.pid_fname, arg); break; case 'f': #if YAZ_HAVE_XML2 option_copy(control_block.xml_config, arg); #else fprintf(stderr, "%s: Option -f unsupported since YAZ is compiled without Libxml2 support\n", me); exit(1); #endif break; case 'D': control_block.background = 1; break; case 'r': if (!arg || !(r = atoi(arg))) { fprintf(stderr, "%s: Specify positive size for -r.\n", me); return(1); } yaz_log_init_max_size(r * 1024); break; default: fprintf(stderr, "Usage: %s [ -a <pdufile> -v <loglevel>" " -l <logfile> -u <user> -c <config> -t <minutes>" " -k <kilobytes> -d <daemon> -p <pidfile> -C certfile" " -ziDST1 -m <time-format> -w <directory> <listener-addr>... ]\n", me); return 1; } } return 0; }