Merged branch 'collectd-4.10' into collectd-5.4.
[collectd.git] / src / collectdmon.c
index e496eb0..c81ca3f 100644 (file)
  *   Sebastian Harl <sh at tokkee.org>
  **/
 
+#if !defined(__GNUC__) || !__GNUC__
+# define __attribute__(x) /**/
+#endif
+
 #include "config.h"
 
 #include <assert.h>
@@ -197,13 +201,13 @@ static int collectd_stop (void)
        return 0;
 } /* collectd_stop */
 
-static void sig_int_term_handler (int signo)
+static void sig_int_term_handler (int __attribute__((unused)) signo)
 {
        ++loop;
        return;
 } /* sig_int_term_handler */
 
-static void sig_hup_handler (int signo)
+static void sig_hup_handler (int __attribute__((unused)) signo)
 {
        ++restart;
        return;
@@ -308,7 +312,10 @@ int main (int argc, char **argv)
        openlog ("collectdmon", LOG_CONS | LOG_PID, LOG_DAEMON);
 
        if (-1 == daemonize ())
+       {
+               free (collectd_argv);
                return 1;
+       }
 
        sa.sa_handler = sig_int_term_handler;
        sa.sa_flags   = 0;
@@ -316,11 +323,13 @@ int main (int argc, char **argv)
 
        if (0 != sigaction (SIGINT, &sa, NULL)) {
                syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno));
+               free (collectd_argv);
                return 1;
        }
 
        if (0 != sigaction (SIGTERM, &sa, NULL)) {
                syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno));
+               free (collectd_argv);
                return 1;
        }
 
@@ -328,12 +337,7 @@ int main (int argc, char **argv)
 
        if (0 != sigaction (SIGHUP, &sa, NULL)) {
                syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno));
-               return 1;
-       }
-
-       sigaddset (&sa.sa_mask, SIGCHLD);
-       if (0 != sigprocmask (SIG_BLOCK, &sa.sa_mask, NULL)) {
-               syslog (LOG_ERR, "Error: sigprocmask() failed: %s", strerror (errno));
+               free (collectd_argv);
                return 1;
        }