[MOD] Clarify a bit of licensing

This commit is contained in:
LDA 2024-08-13 20:57:41 +02:00
commit ccecc2d435
3 changed files with 26 additions and 49 deletions

View file

@ -8,69 +8,46 @@
static HttpServer *server = NULL;
static pthread_t xmpp_thr;
static bool valid = true;
static XMPPComponent *jabber = NULL;
static void
SignalHandler(int signal)
{
switch (signal)
if (server && (signal == SIGTERM || signal == SIGINT))
{
case SIGPIPE:
if (!server)
{
return;
case SIGUSR1:
/* TODO: Soft-restart everything */
return;
case SIGTERM:
case SIGINT:
if (!server)
{
return;
}
}
/* TODO: Better way to break out. */
Log(LOG_INFO, "Killing thread...");
XMPPFinishCompStream(jabber);
pthread_join(xmpp_thr, NULL);
valid = false;
Log(LOG_INFO, "Stopping server...");
HttpServerStop(server);
break;
/* TODO: Better way to break out. */
Log(LOG_INFO, "Killing thread...");
XMPPFinishCompStream(jabber);
pthread_join(xmpp_thr, NULL);
Log(LOG_INFO, "Stopping server...");
HttpServerStop(server);
return;
}
}
bool
ParseeInitialiseSignals(HttpServer *s, pthread_t xmpp, XMPPComponent *j)
{
struct sigaction sigAction;
bool ret = true;
struct sigaction sa;
server = s;
xmpp_thr = xmpp;
jabber = j;
valid = true;
sigfillset(&sa.sa_mask);
sa.sa_handler = SignalHandler;
sa.sa_flags = SA_RESTART;
sigAction.sa_handler = SignalHandler;
sigfillset(&sigAction.sa_mask);
sigAction.sa_flags = SA_RESTART;
#define SIGACTION(sig, act, oact) \
if (sigaction(sig, act, oact) < 0) \
{ \
Log(LOG_ERR, "Unable to install signal handler: %s", #sig); \
ret = false; \
} \
else \
{ \
Log(LOG_DEBUG, "Installed signal handler: %s", #sig); \
#define Register(act) (sigaction(act, &sa, NULL) >= 0)
if (!Register(SIGTERM) || !Register(SIGINT))
{
return false;
}
SIGACTION(SIGINT, &sigAction, NULL);
SIGACTION(SIGTERM, &sigAction, NULL);
SIGACTION(SIGPIPE, &sigAction, NULL);
SIGACTION(SIGUSR1, &sigAction, NULL); /* Make USR1 do a softrestart */
#undef SIGACTION
return ret;
#undef Register
return true;
}