Remove rc_service_plugable function and make it private as it needs to read from our config file.

This commit is contained in:
Roy Marples
2008-01-13 17:47:23 +00:00
parent abc7a79755
commit 87e4e4410c
8 changed files with 43 additions and 50 deletions

View File

@@ -387,3 +387,41 @@ char **env_config (void)
free (runlevel);
return (env);
}
bool service_plugable (const char *service)
{
char *list;
char *p;
char *star;
char *token;
bool allow = true;
char *match = rc_conf_value ("rc_plug_services");
if (! match)
return true;
list = xstrdup (match);
p = list;
while ((token = strsep (&p, " "))) {
bool truefalse = true;
if (token[0] == '!') {
truefalse = false;
token++;
}
star = strchr (token, '*');
if (star) {
if (strncmp (service, token, star - token) == 0) {
allow = truefalse;
break;
}
} else {
if (strcmp (service, token) == 0) {
allow = truefalse;
break;
}
}
}
free (list);
return (allow);
}

View File

@@ -1195,7 +1195,7 @@ int main (int argc, char **argv)
continue;
if (rc_service_exists (d->d_name) &&
rc_service_plugable (d->d_name))
service_plugable (d->d_name))
rc_service_mark (d->d_name, RC_SERVICE_COLDPLUGGED);
i = strlen (DEVBOOT "/") + strlen (d->d_name) + 1;
@@ -1229,7 +1229,7 @@ int main (int argc, char **argv)
tmp = xmalloc (sizeof (char) * i);
snprintf (tmp, i, "net.%s", d->d_name);
if (rc_service_exists (tmp) &&
rc_service_plugable (tmp))
service_plugable (tmp))
rc_service_mark (tmp, RC_SERVICE_COLDPLUGGED);
CHAR_FREE (tmp);
}
@@ -1250,7 +1250,7 @@ int main (int argc, char **argv)
tmp = xmalloc (sizeof (char) * i);
snprintf (tmp, i, "moused.%s", d->d_name);
if (rc_service_exists (tmp) &&
rc_service_plugable (tmp))
service_plugable (tmp))
rc_service_mark (tmp, RC_SERVICE_COLDPLUGGED);
CHAR_FREE (tmp);
}

View File

@@ -1185,7 +1185,7 @@ int runscript (int argc, char **argv)
}
if (rc_yesno (getenv ("IN_HOTPLUG"))) {
if (! rc_conf_yesno ("rc_hotplug") || ! rc_service_plugable (applet))
if (! rc_conf_yesno ("rc_hotplug") || ! service_plugable (applet))
eerrorx ("%s: not allowed to be hotplugged", applet);
}