Merge branch 'master' into mqtt

This commit is contained in:
Jonathan Naylor
2024-08-28 16:51:00 +01:00
3 changed files with 45 additions and 22 deletions

View File

@@ -64,16 +64,11 @@ static bool m_reload = false;
extern CMQTTConnection* m_mqtt;
#if !defined(_WIN32) && !defined(_WIN64)
static void sigHandler1(int signum)
static void sigHandler(int signum)
{
m_killed = true;
m_signal = signum;
}
static void sigHandler2(int signum)
{
m_reload = true;
}
#endif
static CMMDVMHost* host = NULL;
@@ -102,16 +97,16 @@ int main(int argc, char** argv)
}
#if !defined(_WIN32) && !defined(_WIN64)
::signal(SIGINT, sigHandler1);
::signal(SIGTERM, sigHandler1);
::signal(SIGHUP, sigHandler1);
::signal(SIGUSR1, sigHandler2);
::signal(SIGINT, sigHandler);
::signal(SIGTERM, sigHandler);
::signal(SIGHUP, sigHandler);
#endif
int ret = 0;
do {
m_signal = 0;
m_killed = false;
host = new CMMDVMHost(std::string(iniFile));
ret = host->run();
@@ -120,6 +115,8 @@ int main(int argc, char** argv)
host = NULL;
switch (m_signal) {
case 0:
break;
case 2:
::LogInfo("MMDVMHost-%s exited on receipt of SIGINT", VERSION);
break;
@@ -127,16 +124,14 @@ int main(int argc, char** argv)
::LogInfo("MMDVMHost-%s exited on receipt of SIGTERM", VERSION);
break;
case 1:
::LogInfo("MMDVMHost-%s exited on receipt of SIGHUP", VERSION);
break;
case 10:
::LogInfo("MMDVMHost-%s is restarting on receipt of SIGUSR1", VERSION);
::LogInfo("MMDVMHost-%s is restarting on receipt of SIGHUP", VERSION);
m_reload = true;
break;
default:
::LogInfo("MMDVMHost-%s exited on receipt of an unknown signal", VERSION);
break;
}
} while (m_signal == 10);
} while (m_reload || (m_signal == 1));
::LogFinalise();