diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2020-12-02 15:01:39 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2020-12-02 15:01:39 +0200 |
commit | 23cad612301853307888a2a9ac2bc50be49e40fa (patch) | |
tree | 3423e67f75b9aaba5ce956ff7697aab1fba857f3 | |
parent | 0a5c7476fb327ba7eecf4a7955eb9dfd9431160c (diff) | |
download | pies-23cad612301853307888a2a9ac2bc50be49e40fa.tar.gz pies-23cad612301853307888a2a9ac2bc50be49e40fa.tar.bz2 |
Fix reporting of the argv over the control interface (improves c0f4c3b99b)
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/cmdline.opt | 2 | ||||
-rw-r--r-- | src/ctl.c | 4 | ||||
-rw-r--r-- | src/piesctl-cl.opt | 2 | ||||
-rw-r--r-- | src/prog.h | 1 | ||||
-rw-r--r-- | src/progman.c | 10 |
7 files changed, 13 insertions, 10 deletions
@@ -4,7 +4,7 @@ See the end of file for copying conditions. Please send Pies bug reports to <bug-pies@gnu.org> or <bug-pies@gnu.org.ua> -Version 1.4.92 (git) +Version 1.4.93 (git) * Detect if pies is started from docker diff --git a/configure.ac b/configure.ac index 401ebf0..13cf3a7 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ # along with GNU Pies. If not, see <http://www.gnu.org/licenses/>. AC_PREREQ([2.63]) -AC_INIT([GNU Pies], [1.4.92], [bug-pies@gnu.org.ua]) +AC_INIT([GNU Pies], [1.4.93], [bug-pies@gnu.org.ua]) AC_CONFIG_SRCDIR([src/pies.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) diff --git a/src/cmdline.opt b/src/cmdline.opt index b2b1a5f..b69e215 100644 --- a/src/cmdline.opt +++ b/src/cmdline.opt @@ -18,7 +18,7 @@ OPTIONS_BEGIN("pies", [<process invocation and execution supervisor>], [<>], [<gnu>], - [<copyright_year=2008-2017>], + [<copyright_year=2008-2020>], [<copyright_holder=Sergey Poznyakoff>]) GROUP(Operation Mode) @@ -1899,8 +1899,8 @@ prog_serialize (struct json_value *ret, struct prog *prog) prog->v.p.timestamp + SLEEPTIME); v = json_new_array (); - for (i = 0; i < prog->v.p.comp->argc; i++) - json_array_append (v, json_new_string (prog->v.p.comp->argv[i])); + for (i = 0; i < prog->v.p.argc; i++) + json_array_append (v, json_new_string (prog->v.p.argv[i])); json_object_set (ret, "argv", v); break; diff --git a/src/piesctl-cl.opt b/src/piesctl-cl.opt index 498ef22..395c55b 100644 --- a/src/piesctl-cl.opt +++ b/src/piesctl-cl.opt @@ -18,7 +18,7 @@ OPTIONS_BEGIN("piesctl", [<GNU pies control program>], [<COMMAND [ARG...]>], [<gnu>], - [<copyright_year=2008-2017>], + [<copyright_year=2008-2020>], [<copyright_holder=Sergey Poznyakoff>]) OPTION(instance,i,NAME, @@ -53,6 +53,7 @@ struct prog struct { struct component *comp; + size_t argc; char **argv; /* Actual command line (NULL-terminated) */ int socket; struct prog *redir[2]; /* Pointers to redirectors */ diff --git a/src/progman.c b/src/progman.c index 22482ae..db39b6d 100644 --- a/src/progman.c +++ b/src/progman.c @@ -855,7 +855,6 @@ prog_start_prologue (struct prog *prog) if (prog->v.p.comp->flags & CF_EXPANDENV) { struct wordsplit ws; - size_t argc; ws.ws_env = (const char **) environ_ptr (prog->v.p.env); ws.ws_error = progman_ws_error; @@ -866,17 +865,20 @@ prog_start_prologue (struct prog *prog) prog_tag (prog), wordsplit_strerror (&ws)); _exit (127); } - wordsplit_get_words (&ws, &argc, &prog->v.p.argv); + wordsplit_get_words (&ws, &prog->v.p.argc, &prog->v.p.argv); wordsplit_free (&ws); } else - prog->v.p.argv = prog->v.p.comp->argv; + { + prog->v.p.argc = prog->v.p.comp->argc; + prog->v.p.argv = prog->v.p.comp->argv; + } if (debug_level >= 1 && prog->v.p.argv) { int i; logmsg_printf (LOG_DEBUG, "executing"); - for (i = 0; prog->v.p.argv[i]; i++) + for (i = 0; i < prog->v.p.argc; i++) logmsg_printf (LOG_DEBUG, " %s", quotearg (prog->v.p.argv[i])); logmsg_printf (LOG_DEBUG, "\n"); } |