]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Convert InspIRCd::SetSignals to a static function.
authorPeter Powell <petpow@saberuk.com>
Sun, 8 Dec 2019 21:23:22 +0000 (21:23 +0000)
committerPeter Powell <petpow@saberuk.com>
Sun, 8 Dec 2019 21:30:55 +0000 (21:30 +0000)
include/inspircd.h
src/inspircd.cpp

index 97f8b30179b353681351157f26eb667effd71892..56ad556d7e0d367ca604fd3708e50c6222069bf1 100644 (file)
@@ -181,10 +181,6 @@ class serverstats
 class CoreExport InspIRCd
 {
  private:
-       /** Set up the signal handlers
-        */
-       void SetSignals();
-
        /** The current time, updated in the mainloop
         */
        struct timespec TIME;
index 022f066739f0031fa64dbcf3430bffabad25d975..6d82723612631b1796e6d5f39bb6a1bd4787c8ee 100644 (file)
@@ -142,6 +142,7 @@ namespace
        // Attempts to fork into the background.
        bool ForkIntoBackground()
        {
+#ifndef _WIN32
                // We use VoidSignalHandler whilst forking to avoid breaking daemon scripts
                // if the parent process exits with SIGTERM (15) instead of EXIT_STATUS_NOERROR (0).
                signal(SIGTERM, VoidSignalHandler);
@@ -167,8 +168,9 @@ namespace
                {
                        setsid();
                        signal(SIGTERM, InspIRCd::SetSignal);
-                       return true;
                }
+#endif
+               return true;
        }
 
        // Increase the size of a core dump file to improve debugging problems.
@@ -199,6 +201,21 @@ namespace
 #endif
        }
 
+       // Sets handlers for various process signals.
+       void SetSignals()
+       {
+#ifndef _WIN32
+               signal(SIGALRM, SIG_IGN);
+               signal(SIGCHLD, SIG_IGN);
+               signal(SIGHUP, InspIRCd::SetSignal);
+               signal(SIGPIPE, SIG_IGN);
+               signal(SIGUSR1, SIG_IGN);
+               signal(SIGUSR2, SIG_IGN);
+               signal(SIGXFSZ, SIG_IGN);
+#endif
+               signal(SIGTERM, InspIRCd::SetSignal);
+       }
+
        // Required for returning the proper value of EXIT_SUCCESS for the parent process.
        void VoidSignalHandler(int)
        {
@@ -242,20 +259,6 @@ void InspIRCd::Cleanup()
        Logs->CloseLogs();
 }
 
-void InspIRCd::SetSignals()
-{
-#ifndef _WIN32
-       signal(SIGALRM, SIG_IGN);
-       signal(SIGCHLD, SIG_IGN);
-       signal(SIGHUP, InspIRCd::SetSignal);
-       signal(SIGPIPE, SIG_IGN);
-       signal(SIGUSR1, SIG_IGN);
-       signal(SIGUSR2, SIG_IGN);
-       signal(SIGXFSZ, SIG_IGN);
-#endif
-       signal(SIGTERM, InspIRCd::SetSignal);
-}
-
 void InspIRCd::WritePID(const std::string& filename, bool exitonfail)
 {
 #ifndef _WIN32
@@ -450,7 +453,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        }
 #endif
 
-       this->SetSignals();
+       SetSignals();
 
        if (!Config->cmdline.nofork && !ForkIntoBackground())
        {