minor changes to mount/umount to support-by-ignoring the "-v" flag.
Added optional core dumping as a feature for init, and include a rewrite
of syslogd so that it now supports multiple concurrent connections.
 -Erik
diff --git a/init/init.c b/init/init.c
index 9079165..f327a52 100644
--- a/init/init.c
+++ b/init/init.c
@@ -45,7 +45,7 @@
 #include <sys/reboot.h>
 #include <sys/sysinfo.h>		/* For check_free_memory() */
 #ifdef BB_SYSLOGD
-#include <sys/syslog.h>
+# include <sys/syslog.h>
 #endif
 #include <sys/sysmacros.h>
 #include <sys/types.h>
@@ -54,6 +54,15 @@
 #include <termios.h>
 #include <unistd.h>
 
+
+/*
+ * When CORE_ENABLE_FLAG_FILE exists, setrlimit is called before
+ * process is spawned to set corelimit to unlimited.
+ */
+#define CORE_ENABLE_FLAG_FILE "/.init_enable_core"
+#include <sys/resource.h>
+#include <sys/time.h>
+
 #ifndef KERNEL_VERSION
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
 #endif
@@ -406,6 +415,16 @@
 			cmd[i] = NULL;
 		}
 
+		{
+			struct stat sb;
+			if (stat (CORE_ENABLE_FLAG_FILE, &sb) == 0) {
+				struct rlimit limit;
+				limit.rlim_cur = RLIM_INFINITY;
+				limit.rlim_max = RLIM_INFINITY;
+				setrlimit(RLIMIT_CORE, &limit);
+			}
+		}
+
 		/* Now run it.  The new program will take over this PID, 
 		 * so nothing further in init.c should be run. */
 		execve(cmd[0], cmd, environment);
@@ -836,6 +855,7 @@
 	close(1);
 	close(2);
 	set_term(0);
+	chdir("/");
 	setsid();
 
 	/* Make sure PATH is set to something sane */
@@ -881,7 +901,7 @@
 		 * of "askfirst" shells */
 		parse_inittab();
 	}
-	
+
 	/* Fix up argv[0] to be certain we claim to be init */
 	strncpy(argv[0], "init", strlen(argv[0])+1);
 	if (argc > 1)