commit:     c831f1f994e187afd8edfff15e4063b99440bbcb
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Thu Nov  5 17:08:29 2015 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Nov  5 17:20:57 2015 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=c831f1f9

librc: rework overriding rc.conf options from the kcl

Rename the rc_conf_override function to describe its purpose better,
drop one conditional compile by making it available everywhere, and move
the call to it after the optional rc.conf.d directory is processed.

 src/librc/librc-misc.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/librc/librc-misc.c b/src/librc/librc-misc.c
index 2c73663..98e6f20 100644
--- a/src/librc/librc-misc.c
+++ b/src/librc/librc-misc.c
@@ -280,11 +280,14 @@ static void rc_config_set_value(RC_STRINGLIST *config, 
char *value)
 }
 
 /*
- * Override some specific rc.conf options on the kernel command line
+ * Override some specific rc.conf options on the kernel command line.
+ * I only know how to do this in Linux, so if someone wants to supply
+ * a patch for this on *BSD or tell me how to write the code to do this,
+ * any suggestions are welcome.
  */
-#ifdef __linux__
-static RC_STRINGLIST *rc_config_override(RC_STRINGLIST *config)
+static RC_STRINGLIST *rc_config_kcl(RC_STRINGLIST *config)
 {
+#ifdef __linux__
        RC_STRINGLIST *overrides;
        RC_STRING *cline, *override, *config_np;
        char *tmp = NULL;
@@ -333,9 +336,9 @@ static RC_STRINGLIST *rc_config_override(RC_STRINGLIST 
*config)
        }
 
        rc_stringlist_free(overrides);
+#endif
        return config;
 }
-#endif
 
 static RC_STRINGLIST * rc_config_directory(RC_STRINGLIST *config)
 {
@@ -387,13 +390,6 @@ rc_config_load(const char *file)
        }
        rc_stringlist_free(list);
 
-#ifdef __linux__
-       /* Only override rc.conf settings */
-       if (strcmp(file, RC_CONF) == 0) {
-               config = rc_config_override(config);
-       }
-#endif
-
        return config;
 }
 librc_hidden_def(rc_config_load)
@@ -444,6 +440,7 @@ rc_conf_value(const char *setting)
                }
 
                rc_conf = rc_config_directory(rc_conf);
+       rc_conf = rc_config_kcl(rc_conf);
 
                /* Convert old uppercase to lowercase */
                TAILQ_FOREACH(s, rc_conf, entries) {

Reply via email to