diff options
author | Peter Powell <petpow@saberuk.com> | 2019-12-08 21:23:22 +0000 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2019-12-08 21:30:55 +0000 |
commit | 9ad873886e518bf3621a88e8c48607ab79020c0a (patch) | |
tree | df648e82dbb5ba4cdec7375b20a93bceaf6bc4b1 /src | |
parent | 3faa9e329907bca551843119b27dd84d67eb0f40 (diff) |
Convert InspIRCd::SetSignals to a static function.
Diffstat (limited to 'src')
-rw-r--r-- | src/inspircd.cpp | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 022f06673..6d8272361 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -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()) { |