diff options
author | nicm <nicm> | 2020-05-16 15:47:22 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-05-16 15:47:22 +0000 |
commit | 367b4e4e0f1d78589398cddb609b33be870af30c (patch) | |
tree | a45a113764f1473a42f0611ca98e18b6a0164eda /cmd-queue.c | |
parent | 4de0bd4c5c9eec6dd71cac87b91e736944896c22 (diff) |
Change message log to be per server rather than per client and include
every command that is run.
Diffstat (limited to 'cmd-queue.c')
-rw-r--r-- | cmd-queue.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cmd-queue.c b/cmd-queue.c index 620a3e93..26e2f2f9 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -534,6 +534,28 @@ cmdq_find_flag(struct cmdq_item *item, struct cmd_find_state *fs, return (CMD_RETURN_NORMAL); } +/* Add message with command. */ +static void +cmdq_add_message(struct cmdq_item *item) +{ + struct client *c = item->client; + struct cmdq_state *state = item->state; + const char *name, *key; + char *tmp; + + tmp = cmd_print(item->cmd); + if (c != NULL) { + name = c->name; + if (c->session != NULL && state->event.key != KEYC_NONE) { + key = key_string_lookup_key(state->event.key); + server_add_message("%s key %s: %s", name, key, tmp); + } else + server_add_message("%s command: %s", name, tmp); + } else + server_add_message("command: %s", tmp); + free(tmp); +} + /* Fire command on command queue. */ static enum cmd_retval cmdq_fire_command(struct cmdq_item *item) @@ -549,6 +571,8 @@ cmdq_fire_command(struct cmdq_item *item) int flags, quiet = 0; char *tmp; + if (cfg_finished) + cmdq_add_message(item); if (log_get_level() > 1) { tmp = cmd_print(cmd); log_debug("%s %s: (%u) %s", __func__, name, item->group, tmp); @@ -819,6 +843,7 @@ cmdq_error(struct cmdq_item *item, const char *fmt, ...) cmd_get_source(cmd, &file, &line); cfg_add_cause("%s:%u: %s", file, line, msg); } else if (c->session == NULL || (c->flags & CLIENT_CONTROL)) { + server_add_message("%s message: %s", c->name, msg); if (~c->flags & CLIENT_UTF8) { tmp = msg; msg = utf8_sanitize(tmp); |