Merged revisions 318720 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r318720 | mnicholson | 2011-05-12 18:35:51 -0500 (Thu, 12 May 2011) | 4 lines Handle ipv6 addresses in the sent-by Via: field. This change fixes a regression in via header parsing and ipv6 handling. (closes issue #18951) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@318785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
1ad49f46ce
commit
9066db4329
1 changed files with 11 additions and 2 deletions
|
@ -2302,8 +2302,9 @@ struct sip_via *parse_via(const char *header)
|
|||
}
|
||||
v->sent_by = ast_skip_blanks(v->sent_by);
|
||||
|
||||
/* store the port */
|
||||
if ((parm = strchr(v->sent_by, ':'))) {
|
||||
/* store the port, we have to handle ipv6 addresses containing ':'
|
||||
* characters gracefully */
|
||||
if (((parm = strchr(v->sent_by, ']')) && *(++parm) == ':') || (parm = strchr(v->sent_by, ':'))) {
|
||||
char *endptr;
|
||||
|
||||
v->port = strtol(++parm, &endptr, 10);
|
||||
|
@ -2389,6 +2390,13 @@ AST_TEST_DEFINE(parse_via_test)
|
|||
.expected_maddr = "224.0.0.1",
|
||||
.expected_ttl = 1,
|
||||
};
|
||||
struct testdata t7 = {
|
||||
.in = "SIP/2.0/UDP [::1]:5060",
|
||||
.expected_protocol = "SIP/2.0/UDP",
|
||||
.expected_sent_by = "[::1]:5060",
|
||||
.expected_port = 5060,
|
||||
.expected_branch = "",
|
||||
};
|
||||
switch (cmd) {
|
||||
case TEST_INIT:
|
||||
info->name = "parse_via_test";
|
||||
|
@ -2408,6 +2416,7 @@ AST_TEST_DEFINE(parse_via_test)
|
|||
AST_LIST_INSERT_TAIL(&testdatalist, &t4, list);
|
||||
AST_LIST_INSERT_TAIL(&testdatalist, &t5, list);
|
||||
AST_LIST_INSERT_TAIL(&testdatalist, &t6, list);
|
||||
AST_LIST_INSERT_TAIL(&testdatalist, &t7, list);
|
||||
|
||||
|
||||
AST_LIST_TRAVERSE(&testdatalist, testdataptr, list) {
|
||||
|
|
Loading…
Reference in a new issue