aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorChristian Ruppert <idl0r@gentoo.org>2011-12-31 00:33:49 +0100
committerChristian Ruppert <idl0r@gentoo.org>2012-01-15 01:02:11 +0100
commitc3be42006b78809f1087b6a8262caba01f2c7fc1 (patch)
tree0e31d1ebb9382d0292784aa1dc2b3b51abbfc05e /src/rc
parent6fcc55cef80dfaab449b2e5379cb737988f68c24 (diff)
Rename proc_getent to rc_proc_getent and make it global
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/rc.c54
1 files changed, 4 insertions, 50 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 9ee3047a..f284c2e3 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -167,52 +167,6 @@ cleanup(void)
#endif
}
-#ifdef __linux__
-static char *
-proc_getent(const char *ent)
-{
- FILE *fp;
- char *proc, *p, *value = NULL;
- size_t i, len;
-
- if (!exists("/proc/cmdline"))
- return NULL;
-
- if (!(fp = fopen("/proc/cmdline", "r"))) {
- eerror("failed to open `/proc/cmdline': %s", strerror(errno));
- return NULL;
- }
-
- proc = NULL;
- i = 0;
- if (rc_getline(&proc, &i, fp) == -1 || proc == NULL)
- eerror("rc_getline: %s", strerror(errno));
-
- if (proc != NULL) {
- len = strlen(ent);
-
- while ((p = strsep(&proc, " "))) {
- if (strncmp(ent, p, len) == 0 && (p[len] == '\0' || p[len] == ' ' || p[len] == '=')) {
- p += len;
-
- if (*p == '=')
- p++;
-
- value = xstrdup(p);
- }
- }
- }
-
- if (!value)
- errno = ENOENT;
-
- fclose(fp);
- free(proc);
-
- return value;
-}
-#endif
-
static char
read_key(bool block)
{
@@ -969,9 +923,9 @@ main(int argc, char **argv)
#ifdef __linux__
if (strcmp(newlevel, RC_LEVEL_SYSINIT) == 0) {
/* If we requested a runlevel, save it now */
- p = proc_getent("rc_runlevel");
+ p = rc_proc_getent("rc_runlevel");
if (p == NULL)
- p = proc_getent("softlevel");
+ p = rc_proc_getent("softlevel");
if (p != NULL) {
set_krunlevel(p);
free(p);
@@ -1123,7 +1077,7 @@ main(int argc, char **argv)
#ifdef __linux__
/* mark any services skipped as started */
- proc = p = proc_getent("noinit");
+ proc = p = rc_proc_getent("noinit");
if (proc) {
while ((token = strsep(&p, ",")))
rc_service_mark(token, RC_SERVICE_STARTED);
@@ -1144,7 +1098,7 @@ main(int argc, char **argv)
#ifdef __linux__
/* mark any services skipped as stopped */
- proc = p = proc_getent("noinit");
+ proc = p = rc_proc_getent("noinit");
if (proc) {
while ((token = strsep(&p, ",")))
rc_service_mark(token, RC_SERVICE_STOPPED);