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/ctl.c | |
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/ctl.c')
-rw-r--r-- | src/ctl.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -1829,8 +1829,7 @@ prog_serialize (struct json_value *ret, struct prog *prog) | |||
1829 | FORMAT_IDX (ret, "mode", pies_comp_mode_str, prog->v.p.comp->mode); | 1829 | FORMAT_IDX (ret, "mode", pies_comp_mode_str, prog->v.p.comp->mode); |
1830 | FORMAT_IDX (ret, "status", pies_status_str, prog->v.p.status); | 1830 | FORMAT_IDX (ret, "status", pies_status_str, prog->v.p.status); |
1831 | 1831 | ||
1832 | json_object_set_bool (ret, "disabled", | 1832 | json_object_set_bool (ret, "active", prog->v.p.active); |
1833 | prog->v.p.comp->flags & CF_DISABLED); | ||
1834 | 1833 | ||
1835 | if (prog->pid) | 1834 | if (prog->pid) |
1836 | json_object_set_number (ret, "PID", prog->pid); | 1835 | json_object_set_number (ret, "PID", prog->pid); |
@@ -1873,8 +1872,7 @@ fun_list (struct json_value *result, struct prog *prog) | |||
1873 | static int | 1872 | static int |
1874 | fun_stop (struct json_value *result, struct prog *prog) | 1873 | fun_stop (struct json_value *result, struct prog *prog) |
1875 | { | 1874 | { |
1876 | if (prog->v.p.comp->flags & CF_DISABLED | 1875 | if (prog->v.p.active && prog->v.p.status == status_stopped) |
1877 | && prog->v.p.status == status_stopped) | ||
1878 | { | 1876 | { |
1879 | 1877 | ||
1880 | json_object_set_string (result, "status", "ER"); | 1878 | json_object_set_string (result, "status", "ER"); |
@@ -1883,7 +1881,7 @@ fun_stop (struct json_value *result, struct prog *prog) | |||
1883 | } | 1881 | } |
1884 | else | 1882 | else |
1885 | { | 1883 | { |
1886 | prog->v.p.comp->flags |= CF_DISABLED; | 1884 | prog->v.p.active = 0; |
1887 | progman_stop_component (&prog); | 1885 | progman_stop_component (&prog); |
1888 | json_object_set_string (result, "status", "OK"); | 1886 | json_object_set_string (result, "status", "OK"); |
1889 | } | 1887 | } |
@@ -1897,6 +1895,7 @@ fun_start (struct json_value *result, struct prog *prog) | |||
1897 | { | 1895 | { |
1898 | case status_stopped: | 1896 | case status_stopped: |
1899 | prog->v.p.comp->flags &= ~CF_DISABLED; | 1897 | prog->v.p.comp->flags &= ~CF_DISABLED; |
1898 | prog->v.p.active = 1; | ||
1900 | json_object_set_string (result, "status", "OK"); | 1899 | json_object_set_string (result, "status", "OK"); |
1901 | break; | 1900 | break; |
1902 | 1901 | ||