From db3263c4419ffbbf5fd4c225fd5a5faa7bd292de Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Sat, 30 Dec 2017 14:49:23 +0100 Subject: [PATCH] Refactor conf_parse_cmdline(), support 'debug' as well as '--debug' Signed-off-by: Joachim Nilsson --- src/conf.c | 27 ++++++++++++++++++--------- src/finit.c | 3 ++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/conf.c b/src/conf.c index 93a1eecb..d2a6d3fe 100644 --- a/src/conf.c +++ b/src/conf.c @@ -58,21 +58,30 @@ void conf_parse_cmdline(void) { int dbg = 0; FILE *fp; + char line[LINE_SIZE], *cmdline, *tok; fp = fopen("/proc/cmdline", "r"); - if (fp) { - char line[LINE_SIZE]; - - fgets(line, sizeof(line), fp); - chomp(line); - _d("%s", line); - - if (strstr(line, "finit_debug") || strstr(line, "--debug")) - dbg = 1; + if (!fp) + goto done; + if (!fgets(line, sizeof(line), fp)) { fclose(fp); + goto done; } + cmdline = chomp(line); + _d("%s", cmdline); + + while ((tok = strtok(cmdline, " \t"))) { + cmdline = NULL; + + /* Catches finit_debug (deprecated), --debug, and debug */ + if (strstr(tok, "debug")) + dbg = 1; + } + fclose(fp); + +done: log_init(dbg); } diff --git a/src/finit.c b/src/finit.c index ed22f20d..30f636ae 100644 --- a/src/finit.c +++ b/src/finit.c @@ -366,7 +366,8 @@ int main(int argc, char* argv[]) mount("none", "/proc/bus/usb", "usbfs", 0, NULL); /* - * Parse kernel parameters, including log_init() + * Parse kernel command line (debug, rescue, splash, etc.) + * Also calls log_init() to set correct log level */ conf_parse_cmdline();