aboutsummaryrefslogtreecommitdiff
path: root/src/ctl.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2016-02-16 07:15:42 +0200
committerSergey Poznyakoff <gray@gnu.org>2016-02-16 07:15:42 +0200
commitbd8bd1640c72ceefd87b46a7a3d378c78c9081f5 (patch)
tree8224d8dfd67ab70240744dfb2df4c3af9fd1f850 /src/ctl.c
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/ctl.c')
-rw-r--r--src/ctl.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/ctl.c b/src/ctl.c
index f4154f6..6e162e5 100644
--- a/src/ctl.c
+++ b/src/ctl.c
@@ -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)
1873static int 1872static int
1874fun_stop (struct json_value *result, struct prog *prog) 1873fun_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

Return to:

Send suggestions and report system problems to the System administrator.