diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2016-02-16 07:15:42 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2016-02-16 07:15:42 +0200 |
commit | bd8bd1640c72ceefd87b46a7a3d378c78c9081f5 (patch) | |
tree | 8224d8dfd67ab70240744dfb2df4c3af9fd1f850 /src/prog.h | |
parent | 27366c475aa4955f296f169cf9acd33e36b9d7b3 (diff) | |
download | pies-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')
-rw-r--r-- | src/prog.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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); |