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);