summaryrefslogtreecommitdiffstats
path: root/src/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.c')
-rw-r--r--src/client.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/client.c b/src/client.c
index 9989462..46baab8 100644
--- a/src/client.c
+++ b/src/client.c
@@ -172,6 +172,7 @@ static int og_resp_probe(struct og_client *cli, json_t *data)
static int og_resp_shell_run(struct og_client *cli, json_t *data)
{
const char *output = NULL;
+ uint32_t retcode;
const char *key;
json_t *value;
int err = -1;
@@ -184,7 +185,12 @@ static int og_resp_shell_run(struct og_client *cli, json_t *data)
err = og_json_parse_string(value, &output);
if (err < 0)
return err;
+ } else if (!strcmp(key, "retcode")) {
+ err = og_json_parse_uint(value, &retcode);
+ if (err < 0)
+ return err;
}
+
}
if (!output) {
@@ -193,8 +199,9 @@ static int og_resp_shell_run(struct og_client *cli, json_t *data)
return -1;
}
- free((void *)cli->shell_output);
- cli->shell_output = strdup(output);
+ free((void *)cli->shell.output);
+ cli->shell.output = strdup(output);
+ cli->shell.retcode = retcode;
return 0;
}