- no obj-code changes. Fix indentation, use existing defines.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mon, 21 Jul 2008 11:16:39 +0000 (11:16 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mon, 21 Jul 2008 11:16:39 +0000 (11:16 -0000)
init/init.c

index 0e4a8f1e587348ebb3888a5900134177eece20b1..607280752a594fbbe18871300bca4e899cb2fc50 100644 (file)
 #define SHUTDOWN    0x40
 #define RESTART     0x80
 
-/*
-#define STR_SYSINIT     "\x01"
-#define STR_RESPAWN     "\x02"
-#define STR_ASKFIRST    "\x04"
-#define STR_WAIT        "\x08"
-#define STR_ONCE        "\x10"
-#define STR_CTRLALTDEL  "\x20"
-#define STR_SHUTDOWN    "\x40"
-#define STR_RESTART     "\x80"
-*/
 /* Set up a linked list of init_actions, to be read from inittab */
 struct init_action {
        struct init_action *next;
@@ -142,7 +132,7 @@ static void message(int where, const char *fmt, ...)
        if (ENABLE_FEATURE_INIT_SYSLOG) {
                /* Log the message to syslogd */
                if (where & L_LOG) {
-                       /* don't out "\r" */
+                       /* don't print out "\r" */
                        openlog(applet_name, 0, LOG_DAEMON);
                        syslog(LOG_INFO, "init: %s", msg + 1);
                        closelog();
@@ -156,7 +146,7 @@ static void message(int where, const char *fmt, ...)
                 * It's mine, all mine!  Muhahahaha! */
                if (log_fd < 0) {
                        if (!log_console) {
-                               log_fd = 2;
+                               log_fd = STDERR_FILENO;
                        } else {
                                log_fd = device_open(log_console, O_WRONLY | O_NONBLOCK | O_NOCTTY);
                                if (log_fd < 0) {
@@ -169,7 +159,7 @@ static void message(int where, const char *fmt, ...)
                }
                if (where & L_LOG) {
                        full_write(log_fd, msg, l);
-                       if (log_fd == 2)
+                       if (log_fd == STDERR_FILENO)
                                return; /* don't print dup messages */
                }
        }
@@ -210,13 +200,14 @@ static void console_init(void)
        char *s;
 
        s = getenv("CONSOLE");
-       if (!s) s = getenv("console");
+       if (!s)
+               s = getenv("console");
        if (s) {
                int fd = open(s, O_RDWR | O_NONBLOCK | O_NOCTTY);
                if (fd >= 0) {
-                       dup2(fd, 0);
-                       dup2(fd, 1);
-                       xmove_fd(fd, 2);
+                       dup2(fd, STDIN_FILENO);
+                       dup2(fd, STDOUT_FILENO);
+                       xmove_fd(fd, STDERR_FILENO);
                }
                messageD(L_LOG, "console='%s'", s);
        } else {
@@ -255,7 +246,7 @@ static void set_sane_term(void)
        tty.c_cc[VSTOP] = 19;   /* C-s */
        tty.c_cc[VSUSP] = 26;   /* C-z */
 
-       /* use line dicipline 0 */
+       /* use line discipline 0 */
        tty.c_line = 0;
 
        /* Make it be sane */
@@ -282,7 +273,7 @@ static void open_stdio_to_tty(const char* tty_name, int exit_on_failure)
        /* empty tty_name means "use init's tty", else... */
        if (tty_name[0]) {
                int fd;
-               close(0);
+               close(STDIN_FILENO);
                /* fd can be only < 0 or 0: */
                fd = device_open(tty_name, O_RDWR);
                if (fd) {
@@ -292,12 +283,12 @@ static void open_stdio_to_tty(const char* tty_name, int exit_on_failure)
                                _exit(EXIT_FAILURE);
                        if (ENABLE_DEBUG_INIT)
                                _exit(2);
-               /* NB: we don't reach this if we were called after vfork.
-                * Thus halt_reboot_pwoff() itself need not be vfork-safe. */
+                       /* NB: we don't reach this if we were called after vfork.
+                        * Thus halt_reboot_pwoff() itself need not be vfork-safe. */
                        halt_reboot_pwoff(SIGUSR1); /* halt the system */
                }
-               dup2(0, 1);
-               dup2(0, 2);
+               dup2(STDIN_FILENO, STDOUT_FILENO);
+               dup2(STDIN_FILENO, STDERR_FILENO);
        }
        set_sane_term();
 }
@@ -346,8 +337,7 @@ static void init_exec(const char *command)
                        ioctl(STDIN_FILENO, TIOCSCTTY, 0 /*only try, don't steal*/);
        }
        BB_EXECVP(cmd[0] + dash, cmd);
-       message(L_LOG | L_CONSOLE, "Cannot run '%s': %s",
-                       cmd[0], strerror(errno));
+       message(L_LOG | L_CONSOLE, "Cannot run '%s': %s", cmd[0], strerror(errno));
        /* returns if execvp fails */
 }
 
@@ -434,7 +424,6 @@ static pid_t run(const struct init_action *a)
                        waitfor(pid);
                        _exit(EXIT_SUCCESS);
                }
-
                /* Child - fall though to actually execute things */
        }
 #endif
@@ -640,8 +629,7 @@ static void new_init_action(uint8_t action_type, const char *command, const char
                /* don't enter action if it's already in the list,
                 * but do overwrite existing actions */
                if ((strcmp(a->command, command) == 0)
-                && (strcmp(a->terminal, cons) == 0)
-               ) {
+                       && (strcmp(a->terminal, cons) == 0)) {
                        a->action_type = action_type;
                        return;
                }
@@ -687,95 +675,6 @@ static void delete_init_action(struct init_action *action)
  */
 static void parse_inittab(void)
 {
-#if 0
-       FILE *file;
-       char buf[COMMAND_SIZE];
-
-       if (ENABLE_FEATURE_USE_INITTAB)
-               file = fopen(INITTAB, "r");
-       else
-               file = NULL;
-
-       /* No inittab file -- set up some default behavior */
-       if (file == NULL) {
-               /* Reboot on Ctrl-Alt-Del */
-               new_init_action(CTRLALTDEL, "reboot", "");
-               /* Umount all filesystems on halt/reboot */
-               new_init_action(SHUTDOWN, "umount -a -r", "");
-               /* Swapoff on halt/reboot */
-               if (ENABLE_SWAPONOFF)
-                       new_init_action(SHUTDOWN, "swapoff -a", "");
-               /* Prepare to restart init when a QUIT is received */
-               new_init_action(RESTART, "init", "");
-               /* Askfirst shell on tty1-4 */
-               new_init_action(ASKFIRST, bb_default_login_shell, "");
-               new_init_action(ASKFIRST, bb_default_login_shell, VC_2);
-               new_init_action(ASKFIRST, bb_default_login_shell, VC_3);
-               new_init_action(ASKFIRST, bb_default_login_shell, VC_4);
-               /* sysinit */
-               new_init_action(SYSINIT, INIT_SCRIPT, "");
-
-               return;
-       }
-
-       while (fgets(buf, COMMAND_SIZE, file) != NULL) {
-               static const char actions[] =
-                       STR_SYSINIT    "sysinit\0"
-                       STR_RESPAWN    "respawn\0"
-                       STR_ASKFIRST   "askfirst\0"
-                       STR_WAIT       "wait\0"
-                       STR_ONCE       "once\0"
-                       STR_CTRLALTDEL "ctrlaltdel\0"
-                       STR_SHUTDOWN   "shutdown\0"
-                       STR_RESTART    "restart\0"
-               ;
-               char tmpConsole[CONSOLE_NAME_SIZE];
-               char *id, *runlev, *action, *command;
-               const char *a;
-
-               /* Skip leading spaces */
-               id = skip_whitespace(buf);
-               /* Trim the trailing '\n' */
-               *strchrnul(id, '\n') = '\0';
-               /* Skip the line if it is a comment */
-               if (*id == '#' || *id == '\0')
-                       continue;
-
-               /* Line is: "id:runlevel_ignored:action:command" */
-               runlev = strchr(id, ':');
-               if (runlev == NULL /*|| runlev[1] == '\0' - not needed */)
-                       goto bad_entry;
-               action = strchr(runlev + 1, ':');
-               if (action == NULL /*|| action[1] == '\0' - not needed */)
-                       goto bad_entry;
-               command = strchr(action + 1, ':');
-               if (command == NULL || command[1] == '\0')
-                       goto bad_entry;
-
-               *command = '\0'; /* action => ":action\0" now */
-               for (a = actions; a[0]; a += strlen(a) + 1) {
-                       if (strcmp(a + 1, action + 1) == 0) {
-                               *runlev = '\0';
-                               if (*id != '\0') {
-                                       if (strncmp(id, "/dev/", 5) == 0)
-                                               id += 5;
-                                       strcpy(tmpConsole, "/dev/");
-                                       safe_strncpy(tmpConsole + 5, id,
-                                               sizeof(tmpConsole) - 5);
-                                       id = tmpConsole;
-                               }
-                               new_init_action((uint8_t)a[0], command + 1, id);
-                               goto next_line;
-                       }
-               }
-               *command = ':';
-               /* Choke on an unknown action */
- bad_entry:
-               message(L_LOG | L_CONSOLE, "Bad inittab entry: %s", id);
- next_line: ;
-       }
-       fclose(file);
-#else
        char *token[4];
        /* order must correspond to SYSINIT..RESTART constants */
        static const char actions[] ALIGN1 =
@@ -808,7 +707,7 @@ static void parse_inittab(void)
        /* optional_tty:ignored_runlevel:action:command
         * Delims are not to be collapsed and need exactly 4 tokens
         */
-       while (config_read(parser, token, 4, 0, "#:", PARSE_DONT_TRIM|PARSE_DONT_REDUCE|PARSE_LAST_IS_GREEDY)) {
+       while (config_read(parser, token, 4, 0, "#:", PARSE_DONT_TRIM|PARSE_DONT_REDUCE|PARSE_LAST_IS_GREEDY)) {
                int action;
                char *tty = token[0];
 
@@ -828,10 +727,10 @@ static void parse_inittab(void)
                        free(tty);
                continue;
  bad_entry:
-               message(L_LOG | L_CONSOLE, "Bad inittab entry at line %d", parser->lineno);
+               message(L_LOG | L_CONSOLE, "Bad inittab entry at line %d",
+                               parser->lineno);
        }
        config_close(parser);
-#endif
 }
 
 #if ENABLE_FEATURE_USE_INITTAB