From fc597a87219dc0de006f02081bfb9cbc6ddfe14b Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 15 May 2007 15:56:35 +0000 Subject: [PATCH] /etc/conf.d/rc.$runlevel now works, #177869. --- src/librc-misc.c | 9 ++++++++- src/runscript.c | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/librc-misc.c b/src/librc-misc.c index 36d9b318..ecb403a0 100644 --- a/src/librc-misc.c +++ b/src/librc-misc.c @@ -572,7 +572,7 @@ char **rc_config_env (char **env) char *line; int i; char *p; - char **config = rc_get_config (NULL, RC_CONFIG); + char **config; char *e; char sys[6]; struct utsname uts; @@ -580,6 +580,13 @@ char **rc_config_env (char **env) FILE *fp; char buffer[PATH_MAX]; + /* Don't trust environ for softlevel yet */ + snprintf (buffer, PATH_MAX, "%s.%s", RC_CONFIG, rc_get_runlevel()); + if (rc_exists (buffer)) + config = rc_get_config (NULL, buffer); + else + config = rc_get_config (NULL, RC_CONFIG); + STRLIST_FOREACH (config, line, i) { p = strchr (line, '='); if (! p) diff --git a/src/runscript.c b/src/runscript.c index 82484f13..50a1931e 100644 --- a/src/runscript.c +++ b/src/runscript.c @@ -975,6 +975,9 @@ int main (int argc, char **argv) int opt; service = argv[1]; + applet = rc_xstrdup (basename (service)); + atexit (cleanup); + /* Show help if insufficient args */ if (argc < 3) { execl (RCSCRIPT_HELP, RCSCRIPT_HELP, service, (char *) NULL); @@ -982,9 +985,6 @@ int main (int argc, char **argv) applet, strerror (errno)); } - applet = rc_xstrdup (basename (service)); - atexit (cleanup); - #ifdef __linux__ /* coldplug events can trigger init scripts, but we don't want to run them until after rc sysinit has completed so we punt them to the boot runlevel */