summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd-queue.c7
-rw-r--r--control.c3
2 files changed, 8 insertions, 2 deletions
diff --git a/cmd-queue.c b/cmd-queue.c
index a64d332c..904b092c 100644
--- a/cmd-queue.c
+++ b/cmd-queue.c
@@ -157,14 +157,17 @@ int
cmdq_guard(struct cmd_q *cmdq, const char *guard)
{
struct client *c = cmdq->client;
+ int flags;
if (c == NULL)
return 0;
if (!(c->flags & CLIENT_CONTROL))
return 0;
- evbuffer_add_printf(c->stdout_data, "%%%s %ld %u\n", guard,
- (long) cmdq->time, cmdq->number);
+ flags = !!(cmdq->cmd->flags & CMD_CONTROL);
+
+ evbuffer_add_printf(c->stdout_data, "%%%s %ld %u %d\n", guard,
+ (long) cmdq->time, cmdq->number, flags);
server_push_stdout(c);
return 1;
}
diff --git a/control.c b/control.c
index 8986f5c6..1f3739fc 100644
--- a/control.c
+++ b/control.c
@@ -55,6 +55,7 @@ control_callback(struct client *c, int closed, unused void *data)
{
char *line, *cause;
struct cmd_list *cmdlist;
+ struct cmd *cmd;
if (closed)
c->flags |= CLIENT_EXIT;
@@ -78,6 +79,8 @@ control_callback(struct client *c, int closed, unused void *data)
free(cause);
} else {
+ TAILQ_FOREACH(cmd, &cmdlist->list, qentry)
+ cmd->flags |= CMD_CONTROL;
cmdq_run(c->cmdq, cmdlist);
cmd_list_free(cmdlist);
}