commit:     9f6e05671d6d48faa7b83aec05a637bcdfcb3f82
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Mon Dec  7 23:56:02 2015 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Tue Dec  8 18:09:33 2015 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=9f6e0567

Convert rc_sys() calls to detect_container() and detect_vm()

 src/librc/librc-depend.c |  5 ++++-
 src/rc/_usage.c          |  5 ++++-
 src/rc/rc-misc.c         |  6 ++++--
 src/rc/rc.c              | 20 ++++++++++++++++----
 4 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c
index c9c06ad..14cf297 100644
--- a/src/librc/librc-depend.c
+++ b/src/librc/librc-depend.c
@@ -753,7 +753,7 @@ rc_deptree_update(void)
        char *depend, *depends, *service, *type, *nosys, *onosys;
        size_t i, k, l;
        bool retval = true;
-       const char *sys = rc_sys();
+       const char *sys = NULL;
        struct utsname uts;
 
        /* Some init scripts need RC_LIBEXECDIR to source stuff
@@ -860,6 +860,9 @@ rc_deptree_update(void)
 
        /* Phase 2 - if we're a special system, remove services that don't
         * work for them. This doesn't stop them from being run directly. */
+       sys = detect_container();
+               if (!sys)
+                       sys = detect_vm();
        if (sys) {
                len = strlen(sys);
                nosys = xmalloc(len + 2);

diff --git a/src/rc/_usage.c b/src/rc/_usage.c
index 2ab0fa6..a6bad4d 100644
--- a/src/rc/_usage.c
+++ b/src/rc/_usage.c
@@ -56,7 +56,10 @@ show_version(void)
        const char *systype = NULL;
 
        printf("%s (OpenRC", applet);
-       if ((systype = rc_sys()))
+       systype = detect_container();
+       if (!systype)
+               systype = detect_vm();
+       if (systype)
                printf(" [%s]", systype);
        printf(") %s", VERSION);
 #ifdef BRANDING

diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c
index 1e2af0a..263c0ed 100644
--- a/src/rc/rc-misc.c
+++ b/src/rc/rc-misc.c
@@ -139,7 +139,7 @@ env_config(void)
        char *np;
        char *npp;
        char *tok;
-       const char *sys = rc_sys();
+       const char *sys = NULL;
        char buffer[PATH_MAX];
 
        /* Ensure our PATH is prefixed with the system locations first
@@ -190,7 +190,9 @@ env_config(void)
        } else
                setenv("RC_DEFAULTLEVEL", RC_LEVEL_DEFAULT, 1);
 
-       if (sys)
+       sys = detect_container();
+       if (!sys)
+               sys = detect_vm();
                setenv("RC_SYS", sys, 1);
 
 #ifdef PREFIX

diff --git a/src/rc/rc.c b/src/rc/rc.c
index 8f69333..ddc3c78 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -274,7 +274,11 @@ open_shell(void)
        struct passwd *pw;
 
 #ifdef __linux__
-       const char *sys = rc_sys();
+       const char *sys = NULL;
+       
+       sys = detect_container();
+       if (!sys)
+               sys = detect_vm();
 
        /* VSERVER and OPENVZ systems cannot really drop to shells */
        if (sys &&
@@ -480,7 +484,10 @@ do_sysinit()
            uts.machine);
 #endif
 
-       if ((sys = rc_sys()))
+       sys = detect_container();
+       if (!sys)
+               sys = detect_vm();
+       if (sys)
                printf(" [%s]", sys);
 
        printf("%s\n\n", ecolor(ECOLOR_NORMAL));
@@ -495,7 +502,10 @@ do_sysinit()
 
        /* init may have mounted /proc so we can now detect or real
         * sys */
-       if ((sys = rc_sys()))
+       sys = detect_container();
+       if (!sys)
+               sys = detect_vm();
+       if (sys)
                setenv("RC_SYS", sys, 1);
 }
 
@@ -846,7 +856,9 @@ main(int argc, char **argv)
                        eerrorx("%s: %s", applet, strerror(errno));
                        /* NOTREACHED */
                case 'S':
-                       systype = rc_sys();
+                       systype = detect_container();
+                       if (!systype)
+                               systype = detect_vm();
                        if (systype)
                                printf("%s\n", systype);
                        exit(EXIT_SUCCESS);

Reply via email to