Author: oej
Date: Wed Jan  5 03:52:24 2011
New Revision: 300570

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=300570
Log:
Adding manager.conf setting to display incoming actions in the CLI.

And to surprise myself, it worked in the first test. I guess this is
going to be a good coding year.

Modified:
    team/oej/rana-manager-debug-1.4/main/manager.c

Modified: team/oej/rana-manager-debug-1.4/main/manager.c
URL: 
http://svnview.digium.com/svn/asterisk/team/oej/rana-manager-debug-1.4/main/manager.c?view=diff&rev=300570&r1=300569&r2=300570
==============================================================================
--- team/oej/rana-manager-debug-1.4/main/manager.c (original)
+++ team/oej/rana-manager-debug-1.4/main/manager.c Wed Jan  5 03:52:24 2011
@@ -104,12 +104,14 @@
 static const int DEFAULT_TIMESTAMPEVENTS       = 0;    /*!< Default setting 
for timestampevents */     
 static const int DEFAULT_HTTPTIMEOUT           = 60;   /*!< Default manager 
http timeout */
 static const int DEFAULT_BROKENEVENTSACTION    = 0;    /*!< Default setting 
for brokeneventsaction */
+static const int DEFAULT_DEBUG_ACTIONS         = 0;    /*!< Default setting 
for action debugging in the CLI */
 
 
 static int enabled;
 static int portno = DEFAULT_MANAGER_PORT;
 static int asock = -1;
 static int displayconnects;
+static int debug_actions;
 static int timestampevents;
 static int httptimeout;
 static int broken_events_action;
@@ -2265,6 +2267,21 @@
        return 0;
 }
 
+/*! \brief Output manager actions to the CLI */
+static void manager_debug_action(struct mansession *s, const struct message *m)
+{
+       int x;
+
+       /* Find out who */
+       ast_verbose(VERBOSE_PREFIX_2 "%sManager '%s': Received action from 
IP(%s)\n", 
+                       (s->session->sessiontimeout ? "HTTP " : ""), 
s->session->username, ast_inet_ntoa(s->session->sin.sin_addr));
+       /* Find out what */
+       for (x = 0; x < m->hdrcount; x++) {
+               ast_verbose("        %s\n", m->headers[x]);
+       }
+       ast_verbose("\n");
+}
+
 static int process_message(struct mansession *s, const struct message *m)
 {
        char action[80] = "";
@@ -2334,6 +2351,9 @@
                                if (strcasecmp(action, tmp->action))
                                        continue;
                                if ((s->session->writeperm & tmp->authority) == 
tmp->authority) {
+                                       if (debug_actions) {
+                                               manager_debug_action(s, m);
+                                       }
                                        if (tmp->func(s, m))
                                                ret = -1;
                                } else
@@ -3104,6 +3124,7 @@
 
        portno = DEFAULT_MANAGER_PORT;
        displayconnects = DEFAULT_DISPLAYCONNECTS;
+       debug_actions = DEFAULT_DEBUG_ACTIONS;
        broken_events_action = DEFAULT_BROKENEVENTSACTION;
        block_sockets = DEFAULT_BLOCKSOCKETS;
        timestampevents = DEFAULT_TIMESTAMPEVENTS;
@@ -3144,6 +3165,10 @@
 
        if ((val = ast_variable_retrieve(cfg, "general", "httptimeout")))
                newhttptimeout = atoi(val);
+
+       val = ast_variable_retrieve(cfg, "general", "debugactions");
+       if (val)
+               debug_actions = ast_true(val);
 
        memset(&ba, 0, sizeof(ba));
        ba.sin_family = AF_INET;


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to