aboutsummaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
Diffstat (limited to 'sysklogd')
-rw-r--r--sysklogd/klogd.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index 94da61658..9f07d6743 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -47,8 +47,8 @@ static void klogd_signal(int sig)
47 klogctl(7, NULL, 0); 47 klogctl(7, NULL, 0);
48 klogctl(0, 0, 0); 48 klogctl(0, 0, 0);
49 /* logMessage(0, "Kernel log daemon exiting."); */ 49 /* logMessage(0, "Kernel log daemon exiting."); */
50 syslog_msg(LOG_SYSLOG, LOG_NOTICE, "Kernel log daemon exiting."); 50 syslog(LOG_NOTICE, "Kernel log daemon exiting.");
51 exit(TRUE); 51 exit(EXIT_SUCCESS);
52} 52}
53 53
54static void doKlogd(const char console_log_level) __attribute__ ((noreturn)); 54static void doKlogd(const char console_log_level) __attribute__ ((noreturn));
@@ -59,6 +59,8 @@ static void doKlogd(const char console_log_level)
59 int i, n, lastc; 59 int i, n, lastc;
60 char *start; 60 char *start;
61 61
62 openlog("kernel", 0, LOG_KERN);
63
62 /* Set up sig handlers */ 64 /* Set up sig handlers */
63 signal(SIGINT, klogd_signal); 65 signal(SIGINT, klogd_signal);
64 signal(SIGKILL, klogd_signal); 66 signal(SIGKILL, klogd_signal);
@@ -72,22 +74,17 @@ static void doKlogd(const char console_log_level)
72 if (console_log_level) 74 if (console_log_level)
73 klogctl(8, NULL, console_log_level); 75 klogctl(8, NULL, console_log_level);
74 76
75 syslog_msg(LOG_SYSLOG, LOG_NOTICE, "klogd started: " BB_BANNER); 77 syslog(LOG_NOTICE, "klogd started: " BB_BANNER);
76 78
77 while (1) { 79 while (1) {
78 /* Use kernel syscalls */ 80 /* Use kernel syscalls */
79 memset(log_buffer, '\0', sizeof(log_buffer)); 81 memset(log_buffer, '\0', sizeof(log_buffer));
80 n = klogctl(2, log_buffer, sizeof(log_buffer)); 82 n = klogctl(2, log_buffer, sizeof(log_buffer));
81 if (n < 0) { 83 if (n < 0) {
82 char message[80];
83
84 if (errno == EINTR) 84 if (errno == EINTR)
85 continue; 85 continue;
86 snprintf(message, 79, 86 syslog(LOG_ERR, "klogd: Error return from sys_sycall: %d - %s.\n", errno, strerror(errno));
87 "klogd: Error return from sys_sycall: %d - %s.\n", errno, 87 exit(EXIT_FAILURE);
88 strerror(errno));
89 syslog_msg(LOG_SYSLOG, LOG_ERR, message);
90 exit(1);
91 } 88 }
92 89
93 /* klogctl buffer parsing modelled after code in dmesg.c */ 90 /* klogctl buffer parsing modelled after code in dmesg.c */
@@ -107,7 +104,7 @@ static void doKlogd(const char console_log_level)
107 } 104 }
108 if (log_buffer[i] == '\n') { 105 if (log_buffer[i] == '\n') {
109 log_buffer[i] = '\0'; /* zero terminate this message */ 106 log_buffer[i] = '\0'; /* zero terminate this message */
110 syslog_msg(LOG_KERN, priority, start); 107 syslog(priority, start);
111 start = &log_buffer[i + 1]; 108 start = &log_buffer[i + 1];
112 priority = LOG_INFO; 109 priority = LOG_INFO;
113 } 110 }