diff options
Diffstat (limited to 'src/ctl.c')
-rw-r--r-- | src/ctl.c | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -1299,6 +1299,23 @@ idfmt_pid (struct ctlio *io, char const *name, void *ptr) } static void +idfmt_argv (struct ctlio *io, char const *name, void *ptr) +{ + struct json_value *ar = json_new_array (); + size_t i; + + for (i = 0; i < pies_master_argc; i++) + json_array_append (ar, json_new_string (pies_master_argv[i])); + json_object_set (io->output.reply, name, ar); +} + +static void +idfmt_binary (struct ctlio *io, char const *name, void *ptr) +{ + json_object_set_string (io->output.reply, name, "%s", pies_master_argv[0]); +} + +static void res_instance (struct ctlio *io, enum http_method meth, char const *uri, struct json_value *req) { @@ -1309,11 +1326,10 @@ res_instance (struct ctlio *io, enum http_method meth, } idparam[] = { { "package", idfmt_string, PACKAGE_NAME }, { "version", idfmt_string, PACKAGE_VERSION }, -#if HAVE_DECL_PROGRAM_INVOCATION_NAME - { "binary", idfmt_string_ptr, &program_invocation_name }, -#endif + { "binary", idfmt_binary, NULL }, { "PID", idfmt_pid, NULL }, { "instance", idfmt_string_ptr, &instance }, + { "argv", idfmt_argv, NULL }, { NULL } }; struct idparam *p; |