Remove rc_service_plugable function and make it private as it needs to read from our config file.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user