Add in ifconfig and route
[oweals/busybox.git] / init.c
diff --git a/init.c b/init.c
index ac0f72bfc519986d9379796aabb259321fc610a5..a1c6aec3a0bfbe2b8bce1863169c01af89f33287 100644 (file)
--- a/init.c
+++ b/init.c
@@ -37,6 +37,7 @@
 #include <string.h>
 #include <termios.h>
 #include <unistd.h>
+#include <limits.h>
 #include <sys/fcntl.h>
 #include <sys/ioctl.h>
 #include <sys/mount.h>
@@ -114,6 +115,8 @@ static const int RB_AUTOBOOT = 0x01234567;
 #if defined(__GLIBC__)
 #include <sys/kdaemon.h>
 #else
+#include <sys/syscall.h>
+#include <linux/unistd.h>
 static _syscall2(int, bdflush, int, func, int, data);
 #endif                                                 /* __GLIBC__ */
 
@@ -201,7 +204,7 @@ static void message(int device, char *fmt, ...)
                va_start(arguments, fmt);
                vsnprintf(msg, sizeof(msg), fmt, arguments);
                va_end(arguments);
-               openlog("init", 0, LOG_USER);
+               openlog(applet_name, 0, LOG_USER);
                syslog(LOG_USER|LOG_INFO, msg);
                closelog();
        }
@@ -219,7 +222,6 @@ static void message(int device, char *fmt, ...)
                } else if ((log_fd = device_open(log, O_RDWR|O_NDELAY)) < 0) {
                        log_fd = -2;
                        fprintf(stderr, "Bummer, can't write to log on %s!\r\n", log);
-                       fflush(stderr);
                        log = NULL;
                        device = CONSOLE;
                }
@@ -245,7 +247,6 @@ static void message(int device, char *fmt, ...)
                        fprintf(stderr, "Bummer, can't print: ");
                        va_start(arguments, fmt);
                        vfprintf(stderr, fmt, arguments);
-                       fflush(stderr);
                        va_end(arguments);
                }
        }
@@ -296,7 +297,7 @@ static int check_free_memory()
        unsigned int result, u, s=10;
 
        if (sysinfo(&info) != 0) {
-               perror_msg("Error checking free memory");
+               perror_msg("Error checking free memory");
                return -1;
        }
 
@@ -400,6 +401,10 @@ static pid_t run(char *command, char *terminal, int get_enter)
        char buf[255];
        static const char press_enter[] =
 
+#ifdef CUSTOMIZED_BANNER
+#include CUSTOMIZED_BANNER
+#endif
+
                "\nPlease press Enter to activate this console. ";
        char *environment[] = {
                "HOME=/",
@@ -657,9 +662,9 @@ static void reboot_signal(int sig)
 
 #if defined BB_FEATURE_INIT_CHROOT
 
-#if ! defined BB_FEATURE_USE_PROCFS
-#error Sorry, I depend on the /proc filesystem right now.
-#endif
+#warning BB_FEATURE_INIT_CHROOT is out of date and should be rewritten to us
+#warning pivot root instead.  Do not even bother till this work is done...
+#warning You have been warned.
 
 static void check_chroot(int sig)
 {
@@ -934,7 +939,7 @@ extern int init_main(int argc, char **argv)
        {
                        usage("init\n\nInit is the parent of all processes.\n\n"
                                  "This version of init is designed to be run only "
-                                 "by the kernel.\n");
+                                 "by the kernel.");
        }
        /* Set up sig handlers  -- be sure to
         * clear all of these in run() */
@@ -1015,7 +1020,7 @@ extern int init_main(int argc, char **argv)
        argv[0]="init";
 
        if (argc > 1)
-               strncpy(argv[1], "\0", strlen(argv[1])+1);
+               argv[1][0]=0;
 
        /* Now run everything that needs to be run */