summaryrefslogtreecommitdiffabout
path: root/src/prog.h
authorSergey Poznyakoff <gray@gnu.org>2016-02-16 05:15:42 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2016-02-16 05:15:42 (GMT)
commitbd8bd1640c72ceefd87b46a7a3d378c78c9081f5 (patch) (side-by-side diff)
tree8224d8dfd67ab70240744dfb2df4c3af9fd1f850 /src/prog.h
parent27366c475aa4955f296f169cf9acd33e36b9d7b3 (diff)
downloadpies-bd8bd1640c72ceefd87b46a7a3d378c78c9081f5.tar.gz
pies-bd8bd1640c72ceefd87b46a7a3d378c78c9081f5.tar.bz2
Associate program's activity flag with prog, instead of with component.
The CF_DISABLED flag is still retained to indicate that the component is disabled administratively. * src/prog.h (prog.v.p) <active>: New member. (IS_ACTIVE_COMPONENT): Use active flag. * src/comp.c (component_finish): Don't modify component flags. * src/ctl.c (prog_serialize): Replace attribute "disabled" with "active". (fun_stop): Set prog->v.p.active * src/pies.c (main): Use pies_master_argv to check whether program name is absolute. * src/piesctl.c (print_comp): Check "active" attribute. * src/progman.c (register_prog0): Set prog->v.p.active. (progman_create_sockets): Remove components if their socket cannot be opened. (progman_lookup_tcpmux, prog_open_socket) (prog_start, progman_start) (prog_start_prerequisites, react): Operate on prog->v.p.active to test/change prog's activity state. * src/sysvinit.c (enablecomp, runlevel_setup_prog): Operate on prog->v.p.active to test/change prog's activity state. (demand_prog, IS_RUNNING_DISABLED_PROG): Likewise.
Diffstat (limited to 'src/prog.h') (more/less context) (ignore whitespace changes)
-rw-r--r--src/prog.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/prog.h b/src/prog.h
index 4658518..3b20979 100644
--- a/src/prog.h
+++ b/src/prog.h
@@ -51,7 +51,8 @@ struct prog
struct
{
struct component *comp;
- int wait;
+ int wait :1;
+ int active :1;
int socket;
struct prog *redir[2]; /* Pointers to redirectors */
time_t timestamp; /* Time of last startup */
@@ -82,7 +83,7 @@ struct prog
#define IS_COMPONENT(p) ((p)->type == TYPE_COMPONENT)
#define IS_ACTIVE_COMPONENT(prog) \
- (IS_COMPONENT(prog) && !((prog)->v.p.comp->flags & CF_DISABLED))
+ (IS_COMPONENT(prog) && (prog)->v.p.active)
struct prog *progman_locate (const char *name);
int progman_foreach (int (*filter) (struct prog *, void *data), void *data);

Return to:

Send suggestions and report system problems to the System administrator.