]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
manager: Log AMI actions
authorKevin Harwell <kharwell@digium.com>
Tue, 9 Jul 2019 19:42:51 +0000 (14:42 -0500)
committerKevin Harwell <kharwell@digium.com>
Mon, 15 Jul 2019 16:10:41 +0000 (11:10 -0500)
When manager debugging is turned on, this patch makes it so incoming AMI actions
are now also logged.

Change-Id: I8047524510e7ac97d99482b2448f8e368f29cd47

main/manager.c

index b5388c24b08f31905134cc789536d6622ce82aa3..69cbe3746750fb5083f3159034e8f3129f27bf10 100644 (file)
@@ -6439,6 +6439,32 @@ static int manager_moduleload(struct mansession *s, const struct message *m)
        return 0;
 }
 
+static void log_action(const struct message *m, const char *action)
+{
+       struct ast_str *buf;
+       int x;
+
+       if (!manager_debug) {
+               return;
+       }
+
+       buf = ast_str_create(256);
+       if (!buf) {
+               return;
+       }
+
+       for (x = 0; x < m->hdrcount; ++x) {
+               if (!strncasecmp(m->headers[x], "Secret", 6)) {
+                       ast_str_append(&buf, 0, "Secret: <redacted from logging>\n");
+               } else {
+                       ast_str_append(&buf, 0, "%s\n", m->headers[x]);
+               }
+       }
+
+       ast_verbose("<--- Examining AMI action: -->\n%s\n", ast_str_buffer(buf));
+       ast_free(buf);
+}
+
 /*
  * Done with the action handlers here, we start with the code in charge
  * of accepting connections and serving them.
@@ -6469,6 +6495,8 @@ static int process_message(struct mansession *s, const struct message *m)
                return 0;
        }
 
+       log_action(m, action);
+
        if (ast_shutting_down()) {
                ast_log(LOG_ERROR, "Unable to process manager action '%s'. Asterisk is shutting down.\n", action);
                mansession_lock(s);