diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-03-21 14:01:27 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-03-21 14:01:27 +0000 |
commit | 5123bb7db4ce2f8744957a888c8fa264c1423166 (patch) | |
tree | 4696260f9d7eab850f37f6d85610cd1714b69aef /cmd-run-shell.c | |
parent | c6d4baa4e5d5d36990049917cb9cbb0ca4092b86 (diff) | |
parent | af6ae35900a066389c1c9b4dbd430b557fcb8816 (diff) | |
download | rtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.tar.gz rtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.tar.bz2 rtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-run-shell.c')
-rw-r--r-- | cmd-run-shell.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/cmd-run-shell.c b/cmd-run-shell.c index 1cf97d51..a57beb83 100644 --- a/cmd-run-shell.c +++ b/cmd-run-shell.c @@ -160,6 +160,7 @@ cmd_run_shell_callback(struct job *job) { struct cmd_run_shell_data *cdata = job_get_data(job); struct bufferevent *event = job_get_event(job); + struct cmdq_item *item = cdata->item; char *cmd = cdata->cmd, *msg = NULL, *line; size_t size; int retcode, status; @@ -189,13 +190,17 @@ cmd_run_shell_callback(struct job *job) } else if (WIFSIGNALED(status)) { retcode = WTERMSIG(status); xasprintf(&msg, "'%s' terminated by signal %d", cmd, retcode); + retcode += 128; } if (msg != NULL) cmd_run_shell_print(job, msg); free(msg); - if (cdata->item != NULL) - cmdq_continue(cdata->item); + if (item != NULL) { + if (item->client != NULL && item->client->session == NULL) + item->client->retval = retcode; + cmdq_continue(item); + } } static void |