svn commit: trunk/busybox: include sysklogd

vda at busybox.net vda at busybox.net
Wed Feb 14 20:51:47 UTC 2007


Author: vda
Date: 2007-02-14 12:51:46 -0800 (Wed, 14 Feb 2007)
New Revision: 17891

Log:
syslogd: MARK code is buggy. Disabling it altogether on anti-bloat grounds


Modified:
   trunk/busybox/include/usage.h
   trunk/busybox/sysklogd/syslogd.c


Changeset:
Modified: trunk/busybox/include/usage.h
===================================================================
--- trunk/busybox/include/usage.h	2007-02-14 20:50:22 UTC (rev 17890)
+++ trunk/busybox/include/usage.h	2007-02-14 20:51:46 UTC (rev 17891)
@@ -3054,7 +3054,6 @@
        "System logging utility.\n" \
        "Note that this version of syslogd ignores /etc/syslog.conf." \
        "\n\nOptions:" \
-       "\n	-m MIN		Minutes between MARK lines (default=20, 0=off)" \
        "\n	-n		Run as foreground process" \
        "\n	-O FILE		Use an alternate log file (default=/var/log/messages)" \
        "\n	-l n		Sets the local log level of messages to n" \
@@ -3068,6 +3067,7 @@
 	USE_FEATURE_IPC_SYSLOG( \
        "\n	-C[size(KiB)]	Log to a shared mem buffer (read the buffer using logread)")
 	/* NB: -Csize shouldn't have space (because size is optional) */
+/*       "\n	-m MIN		Minutes between MARK lines (default=20, 0=off)" */
 #define syslogd_example_usage \
        "$ syslogd -R masterlog:514\n" \
        "$ syslogd -R 192.168.1.1:601\n"

Modified: trunk/busybox/sysklogd/syslogd.c
===================================================================
--- trunk/busybox/sysklogd/syslogd.c	2007-02-14 20:50:22 UTC (rev 17890)
+++ trunk/busybox/sysklogd/syslogd.c	2007-02-14 20:51:46 UTC (rev 17891)
@@ -28,8 +28,13 @@
 static const char *logFilePath = "/var/log/messages";
 static int logFD = -1;
 
+/* This is not very useful, is bloat, and broken:
+ * can deadlock if alarmed to make MARK while writing to IPC buffer
+ * (semaphores are down but do_mark routine tries to down them again) */
+#ifdef SYSLOGD_MARK
 /* interval between marks in seconds */
 static int markInterval = 20 * 60;
+#endif
 
 /* level of messages to be locally logged */
 static int logLevel = 8;
@@ -448,6 +453,7 @@
 	exit(1);
 }
 
+#ifdef SYSLOGD_MARK
 static void do_mark(int sig)
 {
 	if (markInterval) {
@@ -455,6 +461,7 @@
 		alarm(markInterval);
 	}
 }
+#endif
 
 static void do_syslogd(void) ATTRIBUTE_NORETURN;
 static void do_syslogd(void)
@@ -473,8 +480,10 @@
 #ifdef SIGCLD
 	signal(SIGCLD, SIG_IGN);
 #endif
+#ifdef SYSLOGD_MARK
 	signal(SIGALRM, do_mark);
 	alarm(markInterval);
+#endif
 
 	memset(&sunx, 0, sizeof(sunx));
 	sunx.sun_family = AF_UNIX;
@@ -558,8 +567,10 @@
 	/* do normal option parsing */
 	opt_complementary = "=0"; /* no non-option params */
 	getopt32(argc, argv, OPTION_STR, OPTION_PARAM);
+#ifdef SYSLOGD_MARK
 	if (option_mask32 & OPT_mark) // -m
 		markInterval = xatou_range(opt_m, 0, INT_MAX/60) * 60;
+#endif
 	//if (option_mask32 & OPT_nofork) // -n
 	//if (option_mask32 & OPT_outfile) // -O
 	if (option_mask32 & OPT_loglevel) // -l




More information about the busybox-cvs mailing list