Patch: make init writing to syslog a config option

Eric Spakman E.Spakman at inter.nl.net
Mon Mar 5 19:25:36 UTC 2007


Hi,

Currently busybox init relies on busybox syslogd to write its logging.
This doesn't work with external syslog programs. The patch below makes
init writing syslog messages a configure option, like the su applet.

Regards,

Eric


-----------------------------------------------------------------
diff -urpN busybox.orig/init/Config.in busybox/init/Config.in
--- busybox.orig/init/Config.in	2007-03-01 09:20:09.000000000 +0100
+++ busybox/init/Config.in	2007-03-01 22:22:05.000000000 +0100
@@ -38,6 +38,11 @@ config FEATURE_INIT_SCTTY
 	  behavour, but is often what you want in an embedded system where
 	  the console is only accessed during development or for maintenance.

+config FEATURE_INIT_SYSLOG
+	bool "Enable init to write to syslog"
+	default n
+	depends on INIT
+
 config FEATURE_EXTRA_QUIET
 	bool "Be _extra_ quiet on boot"
 	default y
diff -urpN busybox.orig/init/init.c busybox/init/init.c
--- busybox.orig/init/init.c	2007-03-01 09:20:09.000000000 +0100
+++ busybox/init/init.c	2007-03-01 22:24:01.000000000 +0100
@@ -16,7 +16,7 @@
 #include <sys/wait.h>
 #include <sys/reboot.h>

-#if ENABLE_SYSLOGD
+#if ENABLE_FEATURE_INIT_SYSLOG
 # include <sys/syslog.h>
 #endif

@@ -84,7 +84,7 @@ struct init_action {
 /* Static variables */
 static struct init_action *init_action_list = NULL;

-#if !ENABLE_SYSLOGD
+#if !ENABLE_FEATURE_INIT_SYSLOG
 static const char *log_console = VC_5;
 #endif
 #if !ENABLE_DEBUG_INIT
@@ -144,7 +144,7 @@ static void message(int device, const ch
 	__attribute__ ((format(printf, 2, 3)));
 static void message(int device, const char *fmt, ...)
 {
-#if !ENABLE_SYSLOGD
+#if !ENABLE_FEATURE_INIT_SYSLOG
 	static int log_fd = -1;
 #endif

@@ -159,7 +159,7 @@ static void message(int device, const ch
 	msg[sizeof(msg) - 2] = '\0';
 	l = strlen(msg);

-#if ENABLE_SYSLOGD
+#if ENABLE_FEATURE_INIT_SYSLOG
 	/* Log the message to syslogd */
 	if (device & L_LOG) {
 		/* don't out "\r" */
@@ -285,7 +285,7 @@ static void console_init(void)
 		 * if TERM is set to linux (the default) */
 		if (!s || strcmp(s, "linux") == 0)
 			putenv((char*)"TERM=vt102");
-#if !ENABLE_SYSLOGD
+#if !ENABLE_FEATURE_INIT_SYSLOG
 		log_console = NULL;
 #endif
 	} else if (!s)





More information about the busybox mailing list