]> git.stg.codes - stg.git/blobdiff - projects/stargazer/main.cpp
Ticket 37. '../stglibs/common.lib/strptime.cpp' added in the
[stg.git] / projects / stargazer / main.cpp
index 860800f80987e7b4e10c655496957edab11cfd56..702bfb8663930c2aca4efb82a4b85cf5a6e6507e 100644 (file)
@@ -266,6 +266,11 @@ for (size_t i = 0; i < settings.GetExecutersNum(); i++)
 
 PIDFile pidFile(settings.GetPIDFileName());
 
+struct sigaction sa;
+memset(&sa, 0, sizeof(sa));
+sa.sa_handler = SIG_DFL;
+sigaction(SIGHUP, &sa, NULL); // Apparently FreeBSD ignores SIGHUP by default when launched from rc.d at bot time.
+
 sigset_t signalSet;
 sigfillset(&signalSet);
 pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
@@ -341,18 +346,12 @@ while (running)
             {
             SETTINGS_IMPL newSettings(settings);
             if (newSettings.ReadSettings())
-                {
-                STG_LOGGER & WriteServLog = GetStgLogger();
-
-                if (newSettings.GetLogFileName() != "")
-                    WriteServLog.SetLogFileName(newSettings.GetLogFileName());
-
                 WriteServLog("ReadSettings error. %s", newSettings.GetStrError().c_str());
-                return -1;
-                }
-            settings = newSettings;
+            else
+                settings = newSettings;
+            WriteServLog.SetLogFileName(settings.GetLogFileName());
             traffCnt.Reload();
-            manager.reload();
+            manager.reload(settings);
             }
             break;
         case SIGTERM:
@@ -377,6 +376,8 @@ while (running)
 
 WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++");
 
+manager.stop();
+
 if (loop.Stop())
     WriteServLog("Event loop not stopped.");