Re-indent to a standard tw of 8.
This commit is contained in:
@@ -98,7 +98,7 @@ static bool pid_is_exec (pid_t pid, const char *exec)
|
||||
}
|
||||
|
||||
pid_t *rc_find_pids (const char *exec, const char *cmd,
|
||||
uid_t uid, pid_t pid)
|
||||
uid_t uid, pid_t pid)
|
||||
{
|
||||
DIR *procdir;
|
||||
struct dirent *entry;
|
||||
@@ -192,7 +192,7 @@ librc_hidden_def(rc_find_pids)
|
||||
# endif
|
||||
|
||||
pid_t *rc_find_pids (const char *exec, const char *cmd,
|
||||
uid_t uid, pid_t pid)
|
||||
uid_t uid, pid_t pid)
|
||||
{
|
||||
static kvm_t *kd = NULL;
|
||||
char errbuf[_POSIX2_LINE_MAX];
|
||||
@@ -212,7 +212,7 @@ pid_t *rc_find_pids (const char *exec, const char *cmd,
|
||||
|
||||
#ifdef _KVM_GETPROC2
|
||||
kp = kvm_getproc2 (kd, KERN_PROC_ALL, 0, sizeof(struct kinfo_proc2),
|
||||
&processes);
|
||||
&processes);
|
||||
#else
|
||||
kp = kvm_getprocs (kd, KERN_PROC_PROC, 0, &processes);
|
||||
#endif
|
||||
@@ -226,7 +226,7 @@ pid_t *rc_find_pids (const char *exec, const char *cmd,
|
||||
|
||||
if (cmd) {
|
||||
if (! _GET_KINFO_COMM (kp[i]) ||
|
||||
strcmp (cmd, _GET_KINFO_COMM (kp[i])) != 0)
|
||||
strcmp (cmd, _GET_KINFO_COMM (kp[i])) != 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -262,8 +262,8 @@ librc_hidden_def(rc_find_pids)
|
||||
#endif
|
||||
|
||||
static bool _match_daemon (const char *path, const char *file,
|
||||
const char *mexec, const char *mname,
|
||||
const char *mpidfile)
|
||||
const char *mexec, const char *mname,
|
||||
const char *mpidfile)
|
||||
{
|
||||
char *line;
|
||||
char *ffile = rc_strcatpaths (path, file, (char *) NULL);
|
||||
@@ -304,8 +304,8 @@ static bool _match_daemon (const char *path, const char *file,
|
||||
}
|
||||
|
||||
bool rc_service_daemon_set (const char *service, const char *exec,
|
||||
const char *name, const char *pidfile,
|
||||
bool started)
|
||||
const char *name, const char *pidfile,
|
||||
bool started)
|
||||
{
|
||||
char *dirpath;
|
||||
char *file = NULL;
|
||||
@@ -325,7 +325,7 @@ bool rc_service_daemon_set (const char *service, const char *exec,
|
||||
}
|
||||
|
||||
dirpath = rc_strcatpaths (RC_SVCDIR, "daemons",
|
||||
basename_c (service), (char *) NULL);
|
||||
basename_c (service), (char *) NULL);
|
||||
|
||||
if (exec) {
|
||||
i = strlen (exec) + 6;
|
||||
@@ -358,7 +358,7 @@ bool rc_service_daemon_set (const char *service, const char *exec,
|
||||
|
||||
if (! oldfile) {
|
||||
if (_match_daemon (dirpath, d->d_name,
|
||||
mexec, mname, mpidfile))
|
||||
mexec, mname, mpidfile))
|
||||
{
|
||||
unlink (file);
|
||||
oldfile = file;
|
||||
@@ -402,7 +402,7 @@ bool rc_service_daemon_set (const char *service, const char *exec,
|
||||
librc_hidden_def(rc_service_daemon_set)
|
||||
|
||||
bool rc_service_started_daemon (const char *service, const char *exec,
|
||||
int indx)
|
||||
int indx)
|
||||
{
|
||||
char *dirpath;
|
||||
char *file;
|
||||
@@ -416,8 +416,8 @@ bool rc_service_started_daemon (const char *service, const char *exec,
|
||||
return (false);
|
||||
|
||||
dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename_c (service),
|
||||
(char *) NULL);
|
||||
|
||||
(char *) NULL);
|
||||
|
||||
i = strlen (exec) + 6;
|
||||
mexec = xmalloc (sizeof (char) * i);
|
||||
snprintf (mexec, i, "exec=%s", exec);
|
||||
@@ -468,7 +468,7 @@ bool rc_service_daemons_crashed (const char *service)
|
||||
return (false);
|
||||
|
||||
dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
|
||||
if (! (dp = opendir (dirpath))) {
|
||||
free (dirpath);
|
||||
|
||||
@@ -89,7 +89,7 @@ void rc_deptree_free (rc_depinfo_t *deptree)
|
||||
librc_hidden_def(rc_deptree_free)
|
||||
|
||||
static rc_depinfo_t *get_depinfo (const rc_depinfo_t *deptree,
|
||||
const char *service)
|
||||
const char *service)
|
||||
{
|
||||
const rc_depinfo_t *di;
|
||||
|
||||
@@ -104,7 +104,7 @@ static rc_depinfo_t *get_depinfo (const rc_depinfo_t *deptree,
|
||||
}
|
||||
|
||||
static rc_deptype_t *get_deptype (const rc_depinfo_t *depinfo,
|
||||
const char *type)
|
||||
const char *type)
|
||||
{
|
||||
rc_deptype_t *dt;
|
||||
|
||||
@@ -212,16 +212,16 @@ static bool valid_service (const char *runlevel, const char *service)
|
||||
rc_service_state_t state = rc_service_state (service);
|
||||
|
||||
return ((strcmp (runlevel, bootlevel) != 0 &&
|
||||
rc_service_in_runlevel (service, bootlevel)) ||
|
||||
rc_service_in_runlevel (service, runlevel) ||
|
||||
state & RC_SERVICE_COLDPLUGGED ||
|
||||
state & RC_SERVICE_STARTED);
|
||||
rc_service_in_runlevel (service, bootlevel)) ||
|
||||
rc_service_in_runlevel (service, runlevel) ||
|
||||
state & RC_SERVICE_COLDPLUGGED ||
|
||||
state & RC_SERVICE_STARTED);
|
||||
}
|
||||
|
||||
static bool get_provided1 (const char *runlevel, struct lhead *providers,
|
||||
rc_deptype_t *deptype,
|
||||
const char *level, bool coldplugged,
|
||||
rc_service_state_t state)
|
||||
rc_deptype_t *deptype,
|
||||
const char *level, bool coldplugged,
|
||||
rc_service_state_t state)
|
||||
{
|
||||
char *service;
|
||||
int i;
|
||||
@@ -235,8 +235,8 @@ static bool get_provided1 (const char *runlevel, struct lhead *providers,
|
||||
ok = rc_service_in_runlevel (service, level);
|
||||
else if (coldplugged)
|
||||
ok = (s & RC_SERVICE_COLDPLUGGED &&
|
||||
! rc_service_in_runlevel (service, runlevel) &&
|
||||
! rc_service_in_runlevel (service, bootlevel));
|
||||
! rc_service_in_runlevel (service, runlevel) &&
|
||||
! rc_service_in_runlevel (service, bootlevel));
|
||||
|
||||
if (! ok)
|
||||
continue;
|
||||
@@ -249,8 +249,8 @@ static bool get_provided1 (const char *runlevel, struct lhead *providers,
|
||||
case RC_SERVICE_STARTING:
|
||||
case RC_SERVICE_STOPPING:
|
||||
ok = (s & RC_SERVICE_STARTING ||
|
||||
s & RC_SERVICE_STOPPING ||
|
||||
s & RC_SERVICE_INACTIVE);
|
||||
s & RC_SERVICE_STOPPING ||
|
||||
s & RC_SERVICE_INACTIVE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -276,8 +276,8 @@ static bool get_provided1 (const char *runlevel, struct lhead *providers,
|
||||
provided dependancy can change depending on runlevel state.
|
||||
*/
|
||||
static char **get_provided (const rc_depinfo_t *deptree,
|
||||
const rc_depinfo_t *depinfo,
|
||||
const char *runlevel, int options)
|
||||
const rc_depinfo_t *depinfo,
|
||||
const char *runlevel, int options)
|
||||
{
|
||||
rc_deptype_t *dt;
|
||||
struct lhead providers;
|
||||
@@ -286,7 +286,7 @@ static char **get_provided (const rc_depinfo_t *deptree,
|
||||
|
||||
if (! deptree || ! depinfo)
|
||||
return (NULL);
|
||||
|
||||
|
||||
if (rc_service_exists (depinfo->service))
|
||||
return (NULL);
|
||||
|
||||
@@ -312,7 +312,7 @@ static char **get_provided (const rc_depinfo_t *deptree,
|
||||
{
|
||||
STRLIST_FOREACH (dt->services, service, i)
|
||||
if (rc_service_in_runlevel (service, runlevel) ||
|
||||
rc_service_in_runlevel (service, bootlevel))
|
||||
rc_service_in_runlevel (service, bootlevel))
|
||||
rc_strlist_add (&providers.list, service);
|
||||
|
||||
if (providers.list)
|
||||
@@ -373,7 +373,7 @@ static char **get_provided (const rc_depinfo_t *deptree,
|
||||
return (providers.list);
|
||||
|
||||
if (bootlevel && (strcmp (runlevel, bootlevel) != 0)
|
||||
&& (get_provided1 (runlevel, &providers, dt, bootlevel, false, RC_SERVICE_STOPPED)))
|
||||
&& (get_provided1 (runlevel, &providers, dt, bootlevel, false, RC_SERVICE_STOPPED)))
|
||||
return (providers.list);
|
||||
|
||||
/* Still nothing? OK, list all services */
|
||||
@@ -384,10 +384,10 @@ static char **get_provided (const rc_depinfo_t *deptree,
|
||||
}
|
||||
|
||||
static void visit_service (const rc_depinfo_t *deptree,
|
||||
const char * const *types,
|
||||
struct lhead *sorted, struct lhead *visited,
|
||||
const rc_depinfo_t *depinfo,
|
||||
const char *runlevel, int options)
|
||||
const char * const *types,
|
||||
struct lhead *sorted, struct lhead *visited,
|
||||
const rc_depinfo_t *depinfo,
|
||||
const char *runlevel, int options)
|
||||
{
|
||||
int i, j, k;
|
||||
char *lp;
|
||||
@@ -428,26 +428,26 @@ static void visit_service (const rc_depinfo_t *deptree,
|
||||
{
|
||||
di = get_depinfo (deptree, lp);
|
||||
if (di && (strcmp (item, "ineed") == 0 ||
|
||||
strcmp (item, "needsme") == 0 ||
|
||||
valid_service (runlevel, di->service)))
|
||||
strcmp (item, "needsme") == 0 ||
|
||||
valid_service (runlevel, di->service)))
|
||||
visit_service (deptree, types, sorted, visited, di,
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
}
|
||||
rc_strlist_free (provides);
|
||||
}
|
||||
else
|
||||
if (di && (strcmp (item, "ineed") == 0 ||
|
||||
strcmp (item, "needsme") == 0 ||
|
||||
valid_service (runlevel, service)))
|
||||
strcmp (item, "needsme") == 0 ||
|
||||
valid_service (runlevel, service)))
|
||||
visit_service (deptree, types, sorted, visited, di,
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Now visit the stuff we provide for */
|
||||
if (options & RC_DEP_TRACE &&
|
||||
(dt = get_deptype (depinfo, "iprovide")))
|
||||
(dt = get_deptype (depinfo, "iprovide")))
|
||||
{
|
||||
STRLIST_FOREACH (dt->services, service, i)
|
||||
{
|
||||
@@ -458,7 +458,7 @@ static void visit_service (const rc_depinfo_t *deptree,
|
||||
if (strcmp (lp, depinfo->service) == 0)
|
||||
{
|
||||
visit_service (deptree, types, sorted, visited, di,
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
runlevel, options | RC_DEP_TRACE);
|
||||
break;
|
||||
}
|
||||
rc_strlist_free (provides);
|
||||
@@ -475,7 +475,7 @@ static void visit_service (const rc_depinfo_t *deptree,
|
||||
}
|
||||
|
||||
char **rc_deptree_depend (const rc_depinfo_t *deptree,
|
||||
const char *service, const char *type)
|
||||
const char *service, const char *type)
|
||||
{
|
||||
rc_depinfo_t *di;
|
||||
rc_deptype_t *dt;
|
||||
@@ -484,7 +484,7 @@ char **rc_deptree_depend (const rc_depinfo_t *deptree,
|
||||
char *svc;
|
||||
|
||||
if (! (di = get_depinfo (deptree, service)) ||
|
||||
! (dt = get_deptype (di, type)))
|
||||
! (dt = get_deptype (di, type)))
|
||||
{
|
||||
errno = ENOENT;
|
||||
return (NULL);
|
||||
@@ -499,9 +499,9 @@ char **rc_deptree_depend (const rc_depinfo_t *deptree,
|
||||
librc_hidden_def(rc_deptree_depend)
|
||||
|
||||
char **rc_deptree_depends (const rc_depinfo_t *deptree,
|
||||
const char *const *types,
|
||||
const char *const *services,
|
||||
const char *runlevel, int options)
|
||||
const char *const *types,
|
||||
const char *const *services,
|
||||
const char *runlevel, int options)
|
||||
{
|
||||
struct lhead sorted;
|
||||
struct lhead visited;
|
||||
@@ -527,7 +527,7 @@ char **rc_deptree_depends (const rc_depinfo_t *deptree,
|
||||
}
|
||||
if (types)
|
||||
visit_service (deptree, types, &sorted, &visited,
|
||||
di, runlevel, options);
|
||||
di, runlevel, options);
|
||||
}
|
||||
|
||||
rc_strlist_free (visited.list);
|
||||
@@ -535,9 +535,9 @@ char **rc_deptree_depends (const rc_depinfo_t *deptree,
|
||||
}
|
||||
librc_hidden_def(rc_deptree_depends)
|
||||
|
||||
static const char * const order_types[] = { "ineed", "iuse", "iafter", NULL };
|
||||
static const char * const order_types[] = { "ineed", "iuse", "iafter", NULL };
|
||||
char **rc_deptree_order (const rc_depinfo_t *deptree, const char *runlevel,
|
||||
int options)
|
||||
int options)
|
||||
{
|
||||
char **list = NULL;
|
||||
char **services = NULL;
|
||||
@@ -553,8 +553,8 @@ char **rc_deptree_order (const rc_depinfo_t *deptree, const char *runlevel,
|
||||
|
||||
/* When shutting down, list all running services */
|
||||
if (strcmp (runlevel, RC_LEVEL_SINGLE) == 0 ||
|
||||
strcmp (runlevel, RC_LEVEL_SHUTDOWN) == 0 ||
|
||||
strcmp (runlevel, RC_LEVEL_REBOOT) == 0)
|
||||
strcmp (runlevel, RC_LEVEL_SHUTDOWN) == 0 ||
|
||||
strcmp (runlevel, RC_LEVEL_REBOOT) == 0)
|
||||
{
|
||||
list = rc_services_in_state (RC_SERVICE_STARTED);
|
||||
|
||||
@@ -585,8 +585,8 @@ char **rc_deptree_order (const rc_depinfo_t *deptree, const char *runlevel,
|
||||
/* Now we have our lists, we need to pull in any dependencies
|
||||
and order them */
|
||||
services = rc_deptree_depends (deptree, order_types, (const char **) list,
|
||||
runlevel,
|
||||
RC_DEP_STRICT | RC_DEP_TRACE | options);
|
||||
runlevel,
|
||||
RC_DEP_STRICT | RC_DEP_TRACE | options);
|
||||
rc_strlist_free (list);
|
||||
|
||||
if (reverse)
|
||||
@@ -680,10 +680,10 @@ bool rc_deptree_update_needed (void)
|
||||
|
||||
/* Quick test to see if anything we use has changed */
|
||||
if (! is_newer_than (RC_DEPTREE, RC_INITDIR) ||
|
||||
! is_newer_than (RC_DEPTREE, RC_CONFDIR) ||
|
||||
! is_newer_than (RC_DEPTREE, RC_INITDIR_LOCAL) ||
|
||||
! is_newer_than (RC_DEPTREE, RC_CONFDIR_LOCAL) ||
|
||||
! is_newer_than (RC_DEPTREE, "/etc/rc.conf"))
|
||||
! is_newer_than (RC_DEPTREE, RC_CONFDIR) ||
|
||||
! is_newer_than (RC_DEPTREE, RC_INITDIR_LOCAL) ||
|
||||
! is_newer_than (RC_DEPTREE, RC_CONFDIR_LOCAL) ||
|
||||
! is_newer_than (RC_DEPTREE, "/etc/rc.conf"))
|
||||
return (true);
|
||||
|
||||
/* Some init scripts dependencies change depending on config files
|
||||
@@ -701,14 +701,14 @@ bool rc_deptree_update_needed (void)
|
||||
}
|
||||
librc_hidden_def(rc_deptree_update_needed)
|
||||
|
||||
/* This is a 5 phase operation
|
||||
Phase 1 is a shell script which loads each init script and config in turn
|
||||
and echos their dependency info to stdout
|
||||
Phase 2 takes that and populates a depinfo object with that data
|
||||
Phase 3 adds any provided services to the depinfo object
|
||||
Phase 4 scans that depinfo object and puts in backlinks
|
||||
Phase 5 saves the depinfo object to disk
|
||||
*/
|
||||
/* This is a 5 phase operation
|
||||
Phase 1 is a shell script which loads each init script and config in turn
|
||||
and echos their dependency info to stdout
|
||||
Phase 2 takes that and populates a depinfo object with that data
|
||||
Phase 3 adds any provided services to the depinfo object
|
||||
Phase 4 scans that depinfo object and puts in backlinks
|
||||
Phase 5 saves the depinfo object to disk
|
||||
*/
|
||||
bool rc_deptree_update (void)
|
||||
{
|
||||
char *depends;
|
||||
@@ -819,9 +819,9 @@ bool rc_deptree_update (void)
|
||||
/* .sh files are not init scripts */
|
||||
len = strlen (depend);
|
||||
if (len > 2 &&
|
||||
depend[len - 3] == '.' &&
|
||||
depend[len - 2] == 's' &&
|
||||
depend[len - 1] == 'h')
|
||||
depend[len - 3] == '.' &&
|
||||
depend[len - 2] == 's' &&
|
||||
depend[len - 1] == 'h')
|
||||
continue;
|
||||
|
||||
rc_strlist_addsort (&deptype->services, depend);
|
||||
@@ -835,8 +835,8 @@ bool rc_deptree_update (void)
|
||||
}
|
||||
/* If we're after something, remove us from the before list */
|
||||
if (strcmp (type, "iafter") == 0 ||
|
||||
strcmp (type, "ineed") == 0 ||
|
||||
strcmp (type, "iuse") == 0) {
|
||||
strcmp (type, "ineed") == 0 ||
|
||||
strcmp (type, "iuse") == 0) {
|
||||
if ((dt = get_deptype (depinfo, "ibefore")))
|
||||
rc_strlist_delete (&dt->services, depend);
|
||||
}
|
||||
@@ -886,8 +886,8 @@ next:
|
||||
if (strcmp (deptype->type, "ineed") == 0)
|
||||
{
|
||||
fprintf (stderr,
|
||||
"Service `%s' needs non existant service `%s'\n",
|
||||
depinfo->service, service);
|
||||
"Service `%s' needs non existant service `%s'\n",
|
||||
depinfo->service, service);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -947,7 +947,7 @@ next:
|
||||
STRLIST_FOREACH (deptype->services, service, j)
|
||||
{
|
||||
fprintf (fp, "depinfo_%d_%s_%d='%s'\n", i, deptype->type,
|
||||
k, service);
|
||||
k, service);
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,15 +39,15 @@ bool rc_yesno (const char *value)
|
||||
}
|
||||
|
||||
if (strcasecmp (value, "yes") == 0 ||
|
||||
strcasecmp (value, "y") == 0 ||
|
||||
strcasecmp (value, "true") == 0 ||
|
||||
strcasecmp (value, "1") == 0)
|
||||
strcasecmp (value, "y") == 0 ||
|
||||
strcasecmp (value, "true") == 0 ||
|
||||
strcasecmp (value, "1") == 0)
|
||||
return (true);
|
||||
|
||||
if (strcasecmp (value, "no") != 0 &&
|
||||
strcasecmp (value, "n") != 0 &&
|
||||
strcasecmp (value, "false") != 0 &&
|
||||
strcasecmp (value, "0") != 0)
|
||||
strcasecmp (value, "n") != 0 &&
|
||||
strcasecmp (value, "false") != 0 &&
|
||||
strcasecmp (value, "0") != 0)
|
||||
errno = EINVAL;
|
||||
|
||||
return (false);
|
||||
|
||||
@@ -71,9 +71,9 @@ char *rc_strlist_addu (char ***list, const char *item)
|
||||
librc_hidden_def(rc_strlist_addu)
|
||||
|
||||
static char *_rc_strlist_addsort (char ***list, const char *item,
|
||||
int (*sortfunc) (const char *s1,
|
||||
const char *s2),
|
||||
bool uniq)
|
||||
int (*sortfunc) (const char *s1,
|
||||
const char *s2),
|
||||
bool uniq)
|
||||
{
|
||||
char **newlist;
|
||||
char **lst = *list;
|
||||
|
||||
@@ -90,8 +90,8 @@ static char **ls_dir (const char *dir, int options)
|
||||
|
||||
/* .sh files are not init scripts */
|
||||
if (l > 2 && d->d_name[l - 3] == '.' &&
|
||||
d->d_name[l - 2] == 's' &&
|
||||
d->d_name[l - 1] == 'h')
|
||||
d->d_name[l - 2] == 's' &&
|
||||
d->d_name[l - 1] == 'h')
|
||||
continue;
|
||||
}
|
||||
if (options & LS_DIR) {
|
||||
@@ -227,7 +227,7 @@ bool rc_runlevel_exists (const char *runlevel)
|
||||
}
|
||||
librc_hidden_def(rc_runlevel_exists)
|
||||
|
||||
/* Resolve a service name to it's full path */
|
||||
/* Resolve a service name to it's full path */
|
||||
char *rc_service_resolve (const char *service)
|
||||
{
|
||||
char buffer[PATH_MAX];
|
||||
@@ -285,8 +285,8 @@ bool rc_service_exists (const char *service)
|
||||
|
||||
/* .sh files are not init scripts */
|
||||
if (len > 2 && service[len - 3] == '.' &&
|
||||
service[len - 2] == 's' &&
|
||||
service[len - 1] == 'h')
|
||||
service[len - 2] == 's' &&
|
||||
service[len - 1] == 'h')
|
||||
return (false);
|
||||
|
||||
if (! (file = rc_service_resolve (service)))
|
||||
@@ -367,7 +367,7 @@ bool rc_service_in_runlevel (const char *service, const char *runlevel)
|
||||
return (false);
|
||||
|
||||
file = rc_strcatpaths (RC_RUNLEVELDIR, runlevel, basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
retval = exists (file);
|
||||
free (file);
|
||||
|
||||
@@ -396,7 +396,7 @@ bool rc_service_mark (const char *service, const rc_service_state_t state)
|
||||
}
|
||||
|
||||
file = rc_strcatpaths (RC_SVCDIR, rc_parse_service_state (state), base,
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
if (exists (file))
|
||||
unlink (file);
|
||||
i = symlink (init, file);
|
||||
@@ -420,21 +420,21 @@ bool rc_service_mark (const char *service, const rc_service_state_t state)
|
||||
int s = rc_service_state_names[i].state;
|
||||
|
||||
if ((s != skip_state &&
|
||||
s != RC_SERVICE_STOPPED &&
|
||||
s != RC_SERVICE_COLDPLUGGED &&
|
||||
s != RC_SERVICE_SCHEDULED) &&
|
||||
(! skip_wasinactive || s != RC_SERVICE_WASINACTIVE))
|
||||
s != RC_SERVICE_STOPPED &&
|
||||
s != RC_SERVICE_COLDPLUGGED &&
|
||||
s != RC_SERVICE_SCHEDULED) &&
|
||||
(! skip_wasinactive || s != RC_SERVICE_WASINACTIVE))
|
||||
{
|
||||
file = rc_strcatpaths (RC_SVCDIR, rc_parse_service_state (s), base,
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
if (exists (file)) {
|
||||
if ((state == RC_SERVICE_STARTING ||
|
||||
state == RC_SERVICE_STOPPING) &&
|
||||
s == RC_SERVICE_INACTIVE)
|
||||
state == RC_SERVICE_STOPPING) &&
|
||||
s == RC_SERVICE_INACTIVE)
|
||||
{
|
||||
char *wasfile = rc_strcatpaths (RC_SVCDIR,
|
||||
rc_parse_service_state (RC_SERVICE_WASINACTIVE),
|
||||
base, (char *) NULL);
|
||||
rc_parse_service_state (RC_SERVICE_WASINACTIVE),
|
||||
base, (char *) NULL);
|
||||
|
||||
symlink (init, wasfile);
|
||||
skip_wasinactive = true;
|
||||
@@ -448,8 +448,8 @@ bool rc_service_mark (const char *service, const rc_service_state_t state)
|
||||
|
||||
/* Remove the exclusive state if we're inactive */
|
||||
if (state == RC_SERVICE_STARTED ||
|
||||
state == RC_SERVICE_STOPPED ||
|
||||
state == RC_SERVICE_INACTIVE)
|
||||
state == RC_SERVICE_STOPPED ||
|
||||
state == RC_SERVICE_INACTIVE)
|
||||
{
|
||||
file = rc_strcatpaths (RC_SVCDIR, "exclusive", base, (char *) NULL);
|
||||
unlink (file);
|
||||
@@ -504,7 +504,7 @@ rc_service_state_t rc_service_state (const char *service)
|
||||
|
||||
for (i = 0; rc_service_state_names[i].name; i++) {
|
||||
char *file = rc_strcatpaths (RC_SVCDIR, rc_service_state_names[i].name,
|
||||
basename_c (service), (char*) NULL);
|
||||
basename_c (service), (char*) NULL);
|
||||
if (exists (file)) {
|
||||
if (rc_service_state_names[i].state <= 0x10)
|
||||
state = rc_service_state_names[i].state;
|
||||
@@ -531,7 +531,7 @@ char *rc_service_value_get (const char *service, const char *option)
|
||||
FILE *fp;
|
||||
char *line = NULL;
|
||||
char *file = rc_strcatpaths (RC_SVCDIR, "options", service, option,
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
|
||||
if ((fp = fopen (file, "r"))) {
|
||||
line = rc_getline (fp);
|
||||
@@ -544,7 +544,7 @@ char *rc_service_value_get (const char *service, const char *option)
|
||||
librc_hidden_def(rc_service_value_get)
|
||||
|
||||
bool rc_service_value_set (const char *service, const char *option,
|
||||
const char *value)
|
||||
const char *value)
|
||||
{
|
||||
FILE *fp;
|
||||
char *path = rc_strcatpaths (RC_SVCDIR, "options", service, (char *) NULL);
|
||||
@@ -585,7 +585,7 @@ static pid_t _exec_service (const char *service, const char *arg)
|
||||
|
||||
/* We create a fifo so that other services can wait until we complete */
|
||||
fifo = rc_strcatpaths (RC_SVCDIR, "exclusive", basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
|
||||
if (mkfifo (fifo, 0600) != 0 && errno != EEXIST) {
|
||||
free (fifo);
|
||||
@@ -638,7 +638,7 @@ pid_t rc_service_start (const char *service)
|
||||
librc_hidden_def(rc_service_start)
|
||||
|
||||
bool rc_service_schedule_start (const char *service,
|
||||
const char *service_to_start)
|
||||
const char *service_to_start)
|
||||
{
|
||||
char *dir;
|
||||
char *init;
|
||||
@@ -650,7 +650,7 @@ bool rc_service_schedule_start (const char *service,
|
||||
return (false);
|
||||
|
||||
dir = rc_strcatpaths (RC_SVCDIR, "scheduled", basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
if (mkdir (dir, 0755) != 0 && errno != EEXIST) {
|
||||
free (dir);
|
||||
return (false);
|
||||
@@ -670,7 +670,7 @@ librc_hidden_def(rc_service_schedule_start)
|
||||
bool rc_service_schedule_clear (const char *service)
|
||||
{
|
||||
char *dir = rc_strcatpaths (RC_SVCDIR, "scheduled", basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
bool retval;
|
||||
|
||||
if (! (retval = rm_dir (dir, true)) && errno == ENOENT)
|
||||
@@ -699,7 +699,7 @@ char **rc_services_in_runlevel (const char *runlevel)
|
||||
|
||||
/* These special levels never contain any services */
|
||||
if (strcmp (runlevel, RC_LEVEL_SYSINIT) == 0 ||
|
||||
strcmp (runlevel, RC_LEVEL_SINGLE) == 0)
|
||||
strcmp (runlevel, RC_LEVEL_SINGLE) == 0)
|
||||
return (NULL);
|
||||
|
||||
dir = rc_strcatpaths (RC_RUNLEVELDIR, runlevel, (char *) NULL);
|
||||
@@ -712,7 +712,7 @@ librc_hidden_def(rc_services_in_runlevel)
|
||||
char **rc_services_in_state (rc_service_state_t state)
|
||||
{
|
||||
char *dir = rc_strcatpaths (RC_SVCDIR, rc_parse_service_state (state),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
char **list = NULL;
|
||||
|
||||
if (state == RC_SERVICE_SCHEDULED) {
|
||||
@@ -776,7 +776,7 @@ bool rc_service_add (const char *runlevel, const char *service)
|
||||
}
|
||||
|
||||
file = rc_strcatpaths (RC_RUNLEVELDIR, runlevel, basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
retval = (symlink (init, file) == 0);
|
||||
free (init);
|
||||
free (file);
|
||||
@@ -793,7 +793,7 @@ bool rc_service_delete (const char *runlevel, const char *service)
|
||||
return (false);
|
||||
|
||||
file = rc_strcatpaths (RC_RUNLEVELDIR, runlevel, basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
if (unlink (file) == 0)
|
||||
retval = true;
|
||||
|
||||
@@ -811,7 +811,7 @@ char **rc_services_scheduled_by (const char *service)
|
||||
|
||||
STRLIST_FOREACH (dirs, dir, i) {
|
||||
char *file = rc_strcatpaths (RC_SVCDIR, "scheduled", dir, service,
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
if (exists (file))
|
||||
rc_strlist_add (&list, file);
|
||||
free (file);
|
||||
@@ -825,7 +825,7 @@ librc_hidden_def(rc_services_scheduled_by)
|
||||
char **rc_services_scheduled (const char *service)
|
||||
{
|
||||
char *dir = rc_strcatpaths (RC_SVCDIR, "scheduled", basename_c (service),
|
||||
(char *) NULL);
|
||||
(char *) NULL);
|
||||
char **list = NULL;
|
||||
|
||||
list = ls_dir (dir, LS_INITD);
|
||||
|
||||
Reference in New Issue
Block a user