tcpudp: trivial build fix
[oweals/busybox.git] / sysklogd / klogd.c
index 62425394c9df54e065b5ca70bb492d07667652a8..983a59784c0119076128cfc72c2626b47c312296 100644 (file)
  * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
  */
 
-#include "busybox.h"
-#include <sys/syslog.h>
+#include "libbb.h"
+#include <syslog.h>
 #include <sys/klog.h>
 
 static void klogd_signal(int sig ATTRIBUTE_UNUSED)
 {
        klogctl(7, NULL, 0);
-       klogctl(0, 0, 0);
-       syslog(LOG_NOTICE, "Kernel log daemon exiting");
-       exit(EXIT_SUCCESS);
+       klogctl(0, NULL, 0);
+       syslog(LOG_NOTICE, "klogd: exiting");
+       kill_myself_with_sig(sig);
 }
 
-#define OPT_LEVEL        1
-#define OPT_FOREGROUND   2
-
-#define KLOGD_LOGBUF_SIZE BUFSIZ
 #define log_buffer bb_common_bufsiz1
-
-int klogd_main(int argc, char **argv);
-int klogd_main(int argc, char **argv)
+enum {
+       KLOGD_LOGBUF_SIZE = sizeof(log_buffer),
+       OPT_LEVEL      = (1 << 0),
+       OPT_FOREGROUND = (1 << 1),
+};
+
+int klogd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int klogd_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
        int i = i; /* silence gcc */
        char *start;
 
        /* do normal option parsing */
-       getopt32(argc, argv, "c:n", &start);
+       getopt32(argv, "c:n", &start);
 
        if (option_mask32 & OPT_LEVEL) {
                /* Valid levels are between 1 and 8 */
@@ -56,9 +57,10 @@ int klogd_main(int argc, char **argv)
        openlog("kernel", 0, LOG_KERN);
 
        /* Set up sig handlers */
-       signal(SIGINT, klogd_signal);
-       signal(SIGKILL, klogd_signal);
-       signal(SIGTERM, klogd_signal);
+       bb_signals(0
+               + (1 << SIGINT)
+               + (1 << SIGTERM)
+               , klogd_signal);
        signal(SIGHUP, SIG_IGN);
 
        /* "Open the log. Currently a NOP." */
@@ -68,7 +70,7 @@ int klogd_main(int argc, char **argv)
        if (option_mask32 & OPT_LEVEL)
                klogctl(8, NULL, i);
 
-       syslog(LOG_NOTICE, "klogd started: %s", BB_BANNER);
+       syslog(LOG_NOTICE, "klogd started: %s", bb_banner);
 
        /* Note: this code does not detect incomplete messages
         * (messages not ending with '\n' or just when kernel