From: Peter Powell Date: Sat, 17 Feb 2018 17:44:17 +0000 (+0000) Subject: Move m_sslrehashsignal to the extra directory. X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=5628d84f9ea4e7f767afb7d682c91d54d9b86176;p=user%2Fhenk%2Fcode%2Finspircd.git Move m_sslrehashsignal to the extra directory. This module uses platform-specific behaviour that does not work on Windows. --- diff --git a/.gitignore b/.gitignore index 2790ac8c2..7b23912d7 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ /src/modules/m_ssl_gnutls.cpp /src/modules/m_ssl_mbedtls.cpp /src/modules/m_ssl_openssl.cpp +/src/modules/m_sslrehashsignal.cpp /win/Win32 /win/*.dir diff --git a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example index 8bc34f2d3..f8cb7ddfa 100644 --- a/docs/conf/modules.conf.example +++ b/docs/conf/modules.conf.example @@ -1916,6 +1916,9 @@ #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # SSL rehash signal module: Allows the SSL modules to be rehashed by # sending SIGUSR1 to a running InspIRCd process. +# This modules is in extras. Re-run configure with: +# ./configure --enable-extras=m_sslrehashsignal.cpp +# and run make install, then uncomment this module to enable it. # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# diff --git a/src/modules/extra/m_sslrehashsignal.cpp b/src/modules/extra/m_sslrehashsignal.cpp new file mode 100644 index 000000000..fea32326a --- /dev/null +++ b/src/modules/extra/m_sslrehashsignal.cpp @@ -0,0 +1,64 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2018 Peter Powell + * Copyright (C) 2016 Attila Molnar + * + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "inspircd.h" + +static volatile sig_atomic_t signaled; + +class ModuleSSLRehashSignal : public Module +{ + private: + static void SignalHandler(int) + { + signaled = 1; + } + + public: + ~ModuleSSLRehashSignal() + { + signal(SIGUSR1, SIG_DFL); + } + + void init() + { + signal(SIGUSR1, SignalHandler); + } + + void OnBackgroundTimer(time_t) + { + if (!signaled) + return; + + const std::string feedbackmsg = "Got SIGUSR1, reloading SSL credentials"; + ServerInstance->SNO->WriteGlobalSno('a', feedbackmsg); + ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, feedbackmsg); + + const std::string str = "ssl"; + FOREACH_MOD(OnModuleRehash, (NULL, str)); + signaled = 0; + } + + Version GetVersion() + { + return Version("Reloads SSL credentials on SIGUSR1", VF_VENDOR); + } +}; + +MODULE_INIT(ModuleSSLRehashSignal) diff --git a/src/modules/m_sslrehashsignal.cpp b/src/modules/m_sslrehashsignal.cpp deleted file mode 100644 index fea32326a..000000000 --- a/src/modules/m_sslrehashsignal.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2018 Peter Powell - * Copyright (C) 2016 Attila Molnar - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include "inspircd.h" - -static volatile sig_atomic_t signaled; - -class ModuleSSLRehashSignal : public Module -{ - private: - static void SignalHandler(int) - { - signaled = 1; - } - - public: - ~ModuleSSLRehashSignal() - { - signal(SIGUSR1, SIG_DFL); - } - - void init() - { - signal(SIGUSR1, SignalHandler); - } - - void OnBackgroundTimer(time_t) - { - if (!signaled) - return; - - const std::string feedbackmsg = "Got SIGUSR1, reloading SSL credentials"; - ServerInstance->SNO->WriteGlobalSno('a', feedbackmsg); - ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, feedbackmsg); - - const std::string str = "ssl"; - FOREACH_MOD(OnModuleRehash, (NULL, str)); - signaled = 0; - } - - Version GetVersion() - { - return Version("Reloads SSL credentials on SIGUSR1", VF_VENDOR); - } -}; - -MODULE_INIT(ModuleSSLRehashSignal)