15 #define sleep(x) Sleep((x) * 1000)
16 #include "main-common.c"
23 void parse_options(LPSTR args)
25 const char *replay_file_name;
29 unsigned int check_conf;
33 argc = split_line(args, 0, ArrayLength(argv), argv);
37 replay_file_name = NULL;
40 for (ii = 0; ii < argc; ++ii) {
42 if ((arg[0] == '/') || (arg[0] == '-' && arg[1] == '-')) {
43 arg += 1 + (arg[0] == '-' && arg[1] == '-');
44 if (!strcmp(arg, "config")) {
45 } else if (!strcmp(arg, "debug")) {
47 } else if (!strcmp(arg, "foreground")) {
49 } else if (!strcmp(arg, "check")) {
51 } else if (!strcmp(arg, "replay")) {
52 replay_file_name = argv[++ii];
53 } else if (!strcmp(arg, "version")) {
61 } else if (arg[0] == '-') {
62 for (jj = 1; arg[jj] != '\0'; ++jj) {
64 case 'c': services_config = argv[++ii]; break;
65 case 'd': debug = 1; break;
66 case 'f': daemon = 0; break;
67 case 'k': check_conf = 1; break;
68 case 'r': replay_file_name = argv[++ii]; break;
83 if (conf_read(services_config)) {
84 printf("%s appears to be a valid configuration file.\n", services_config);
86 printf("%s is an invalid configuration file.\n", services_config);
91 if (replay_file_name) {
92 replay_file = fopen(optarg, "r");
94 fprintf(stderr, "Could not open %s for reading: %s (%d)\n",
95 optarg, strerror(errno), errno);
101 int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
104 parse_options(lpCmdLine);
105 log_module(MAIN_LOG, LOG_INFO, "Initializing daemon...");
107 if (!conf_read(services_config)) {
108 log_module(MAIN_LOG, LOG_FATAL, "Unable to read %s.", services_config);
112 boot_time = time(&now);
113 conf_register_reload(uplink_compile);
114 atexit(call_exit_funcs);
115 reg_exit_func(main_shutdown);
118 MAIN_LOG = log_register_type("srvx", "file:main.log");
132 message_register_table(msgtab);
137 reg_exit_func(saxdb_write_all);
141 return quit_services;
142 (void)hInst; (void)hPrevInst; (void)nCmdShow;