Cleanup start/refresh.
[apps/pfixtools.git] / postlicyd / main-postlicyd.c
index 08c6a2b..dab0bf0 100644 (file)
@@ -83,7 +83,10 @@ static bool config_refresh(void *mconfig)
     if (filter_running > 0) {
         return true;
     }
+    log_state = "refreshing ";
+    info("reloading configuration");
     bool ret = config_reload(mconfig);
+    log_state = "";
     foreach (client_t **server, busy) {
         client_io_ro(*server);
     }}
@@ -283,6 +286,7 @@ void usage(void)
           "    -f           stay in foreground\n"
           "    -d           grow logging level\n"
           "    -u           unsafe mode (don't drop privileges)\n"
+          "    -c           check-conf\n"
          , stderr);
 }
 
@@ -295,8 +299,9 @@ int main(int argc, char *argv[])
     bool daemonize = true;
     int port = DEFAULT_PORT;
     bool port_from_cli = false;
+    bool check_conf = false;
 
-    for (int c = 0; (c = getopt(argc, argv, "ufd" "l:p:")) >= 0; ) {
+    for (int c = 0; (c = getopt(argc, argv, "ufdc" "l:p:")) >= 0; ) {
         switch (c) {
           case 'p':
             pidfile = optarg;
@@ -314,6 +319,11 @@ int main(int argc, char *argv[])
           case 'd':
             ++log_level;
             break;
+          case 'c':
+            check_conf = true;
+            daemonize  = false;
+            unsafe     = true;
+            break;
           default:
             usage();
             return EXIT_FAILURE;
@@ -329,6 +339,9 @@ int main(int argc, char *argv[])
         return EXIT_FAILURE;
     }
 
+    if (check_conf) {
+        return config_check(argv[optind]) ? EXIT_SUCCESS : EXIT_FAILURE;
+    }
     info("%s v%s...", DAEMON_NAME, DAEMON_VERSION);
 
     if (pidfile_open(pidfile) < 0) {