chan_sip.c: Space after port causes unnecessary resolution attempt
authorFrancesco Castellano <francesco.castellano@messagenet.it>
Fri, 20 Nov 2015 14:02:48 +0000 (15:02 +0100)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 22 Mar 2016 15:29:31 +0000 (10:29 -0500)
check_via() already skips leading blanks where the sent-by address (with the
optional port) should be placed.

Since RFC 3261 allows for blanks between the port ant the Via parameters:
> https://tools.ietf.org/html/rfc3261#section-20.42
(actually it allows a lot of blanks more ;-)). I just switched from
ast_skip_blanks() to ast_strip() on the local copy of the string.

ASTERISK-21301 #close

Change-Id: Ie5b8fe5a07067b7c0dc9bcdd1707e99b23b02b06

channels/chan_sip.c

index 97cd6ab..09ab1a1 100644 (file)
@@ -18859,7 +18859,7 @@ static void check_via(struct sip_pvt *p, const struct sip_request *req)
        c = strchr(via, ' ');
        if (c) {
                *c = '\0';
-               c = ast_skip_blanks(c+1);
+               c = ast_strip(c+1);
                if (strcasecmp(via, "SIP/2.0/UDP") && strcasecmp(via, "SIP/2.0/TCP") && strcasecmp(via, "SIP/2.0/TLS")) {
                        ast_log(LOG_WARNING, "Don't know how to respond via '%s'\n", via);
                        return;