=================================================================== RCS file: /cvs/cvs/blind/blind.c,v retrieving revision 1.14 retrieving revision 1.24 diff -u -p -r1.14 -r1.24 --- blind/blind.c 2022/03/20 18:47:16 1.14 +++ blind/blind.c 2022/10/29 06:20:52 1.24 @@ -16,18 +16,17 @@ #include #include -#include #include #include +#include #include "blind.h" #include "config.h" #include "log.h" -static void usage(void); +static void usage(void); -int daemonize = 1; -struct blind *bl; +struct blind *bl; static void usage(void) @@ -42,8 +41,9 @@ int main(int argc, char *argv[]) { int ch; - int verbose = 0; + int verbose = 0; int no_action = 0; + int daemonize = 1; const char *config = BL_CONF; while ((ch = getopt(argc, argv, "dhnvf:")) != -1) { @@ -57,6 +57,7 @@ main(int argc, char *argv[]) break; case 'n': no_action = 1; + daemonize = 0; break; case 'f': config = optarg; @@ -80,26 +81,33 @@ main(int argc, char *argv[]) if ((bl = config_init()) == NULL) log_fatal("initialization failed"); - bl->bl_opt |= verbose; - log_setv(verbose); - log_debug("verbose on"); - + if (verbose) { + bl->bl_opt |= verbose; + log_set(verbose); + log_debug("verbose mode on"); + } + if (strlcpy(bl->bl_conf, config, PATH_MAX) >= PATH_MAX) log_fatal("file name exceeds PATH_MAX"); - log_debug("config_load: %s", bl->bl_conf); - if (config_load(bl)) - log_fatal("config_load: %s", bl->bl_conf); - - log_debug("conf=%s", bl->bl_conf); - log_debug("sock=%s", bl->bl_sock); + if (config_load(bl)) + log_fatal("%s", bl->bl_conf); + + if (no_action) { + // check config + log_info("configuration ok"); + free(bl); + exit(0); + } + + log_debug("conf=%s", bl->bl_conf); + log_debug("sock=%s", bl->bl_sock); log_debug(" ttl=%d", bl->bl_ttl); - log_debug(" opt=%d", bl->bl_opt); - log_debug(" flg=%d", bl->bl_flg); - - // TAILQ_INIT(&offline_queue) + log_debug(" opt=%d", bl->bl_opt); - // fork + process setup + communication setup + // to be continued or not + + free(bl); exit(0); }