]> jfr.im git - irc/quakenet/newserv.git/blobdiff - core/main.c
Added code to handle SIGUSR1 and trigger a hook. This can be used by modules for...
[irc/quakenet/newserv.git] / core / main.c
index e729479d32db76ca686ccc88366d8d8862a067a9..a14a4adaac6cec10519eddb8a9970279b4127b7b 100644 (file)
 #include <signal.h>
 
 int newserv_shutdown_pending;
+int newserv_sigusr1_pending;
 
 void initseed();
 void init_logfile();
 void siginthandler(int sig);
+void sigusr1handler(int sig);
 
 int main(int argc, char **argv) {
   initseed();
@@ -38,6 +40,7 @@ int main(int argc, char **argv) {
   /* Loading the modules will bring in the bulk of the code */
   initmodules();
   signal(SIGINT, siginthandler);
+  signal(SIGUSR1, sigusr1handler);
 
   /* Main loop */
   for(;;) {
@@ -47,6 +50,11 @@ int main(int argc, char **argv) {
       newserv_shutdown();
       break;
     }
+
+    if (newserv_sigusr1_pending) {
+      triggerhook(HOOK_CORE_SIGUSR1, NULL);
+      newserv_sigusr1_pending=0;
+    }
   }  
 
   nsexit();
@@ -68,3 +76,7 @@ void initseed() {
 void siginthandler(int sig) {
   newserv_shutdown_pending = 1;
 }
+
+void sigusr1handler(int sig) {
+  newserv_sigusr1_pending = 1;
+}