]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
pjsip_distributor.c: Update some debug messages to get transaction name. 29/5029/1
authorRichard Mudgett <rmudgett@digium.com>
Mon, 6 Feb 2017 20:26:30 +0000 (14:26 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 20 Feb 2017 22:28:28 +0000 (16:28 -0600)
* Removed overloaded unmatched response ignore.  We obviously sent the
request so we shouldn't ignore it because it isn't new work.

ASTERISK-26669
ASTERISK-26738

Change-Id: I55fb5cadc83a8e6699b347c6dc7fa32c5a617d37

res/res_pjsip/pjsip_distributor.c

index e076db3b8f9ec4da873b229a30b514b456591a2f..6ee6fed6c865f826c57ba180cdd48f02220f91ca 100644 (file)
@@ -110,12 +110,12 @@ static struct ast_taskprocessor *find_request_serializer(pjsip_rx_data *rdata)
 
        tsx = pjsip_tsx_layer_find_tsx(&tsx_key, PJ_TRUE);
        if (!tsx) {
-               ast_debug(1, "Could not find %.*s transaction for %d response.\n",
-                       (int) pj_strlen(&rdata->msg_info.cseq->method.name),
-                       pj_strbuf(&rdata->msg_info.cseq->method.name),
-                       rdata->msg_info.msg->line.status.code);
+               ast_debug(1, "Could not find transaction for %s.\n",
+                       pjsip_rx_data_get_info(rdata));
                return NULL;
        }
+       ast_debug(3, "Found transaction %s for %s.\n",
+               tsx->obj_name, pjsip_rx_data_get_info(rdata));
 
        if (tsx->last_tx) {
                const char *serializer_name;
@@ -392,21 +392,14 @@ static pj_bool_t distributor(pjsip_rx_data *rdata)
        if (serializer) {
                /* We have a serializer so we know where to send the message. */
        } else if (rdata->msg_info.msg->type == PJSIP_RESPONSE_MSG) {
-               ast_debug(3, "No dialog serializer for response %s. Using request transaction as basis\n",
+               ast_debug(3, "No dialog serializer for %s.  Using request transaction as basis.\n",
                        pjsip_rx_data_get_info(rdata));
                serializer = find_request_serializer(rdata);
                if (!serializer) {
-                       if (ast_taskprocessor_alert_get()) {
-                               /* We're overloaded, ignore the unmatched response. */
-                               ast_debug(3, "Taskprocessor overload alert: Ignoring unmatched '%s'.\n",
-                                       pjsip_rx_data_get_info(rdata));
-                               return PJ_TRUE;
-                       }
-
                        /*
-                        * Pick a serializer for the unmatched response.  Maybe
-                        * the stack can figure out what it is for, or we really
-                        * should just toss it regardless.
+                        * Pick a serializer for the unmatched response.
+                        * We couldn't determine what serializer originally
+                        * sent the request or the serializer is gone.
                         */
                        serializer = ast_sip_get_distributor_serializer(rdata);
                }
@@ -750,7 +743,7 @@ static int distribute(void *data)
                .start_mod = &distributor_mod,
                .idx_after_start = 1,
        };
-       pj_bool_t handled;
+       pj_bool_t handled = PJ_FALSE;
        pjsip_rx_data *rdata = data;
        int is_request = rdata->msg_info.msg->type == PJSIP_REQUEST_MSG;
        int is_ack = is_request ? rdata->msg_info.msg->line.req.method.id == PJSIP_ACK_METHOD : 0;