aboutsummaryrefslogtreecommitdiff
path: root/src/rc/rc.c
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2016-01-18 23:40:20 -0600
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-01-18 23:40:20 -0600
commit55a28f5d2524615560698453a5a6afd50460030c (patch)
tree4017651bb7b10b124058a6d422551e86cfbd449e /src/rc/rc.c
parent6c0942137572608d02eb4b34bad55c9bf418a6ba (diff)
Revert "rc: make get_systype similar to the old rc_sys function"
This reverts commit f79a7a7be18d68bf264efc60d82838d03048da6b.
Diffstat (limited to 'src/rc/rc.c')
-rw-r--r--src/rc/rc.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 0a970b4e..87c4913f 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -281,8 +281,12 @@ open_shell(void)
struct passwd *pw;
#ifdef __linux__
- char *sys = get_systype();
+ const char *sys = NULL;
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
+
/* VSERVER and OPENVZ systems cannot really drop to shells */
if (sys &&
(strcmp(sys, "VSERVER") == 0 || strcmp(sys, "OPENVZ") == 0))
@@ -466,7 +470,7 @@ static void
do_sysinit()
{
struct utsname uts;
- char *sys = get_systype();
+ const char *sys;
/* exec init-early.sh if it exists
* This should just setup the console to use the correct
@@ -487,6 +491,9 @@ do_sysinit()
uts.machine);
#endif
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
if (sys)
printf(" [%s]", sys);
@@ -502,7 +509,9 @@ do_sysinit()
/* init may have mounted /proc so we can now detect or real
* sys */
- sys = get_systype();
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
if (sys)
setenv("RC_SYS", sys, 1);
}
@@ -823,7 +832,9 @@ int main(int argc, char **argv)
eerrorx("%s: %s", applet, strerror(errno));
/* NOTREACHED */
case 'S':
- systype = get_systype();
+ systype = detect_container();
+ if (!systype)
+ systype = detect_vm();
if (systype)
printf("%s\n", systype);
exit(EXIT_SUCCESS);