]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
pjproject_bundled: Allow brackets in via parameters
authorSean Bright <sean.bright@gmail.com>
Thu, 16 Jan 2020 15:50:01 +0000 (10:50 -0500)
committerJoshua Colp <jcolp@sangoma.com>
Thu, 6 Feb 2020 12:35:14 +0000 (06:35 -0600)
ASTERISK-26955 #close
Reported by: Peter Sokolov

Change-Id: Ib2803640905a77b65d0cee2d0ed2c7b310d470ac

third-party/pjproject/patches/0040-brackets-in-via-received-params.patch [new file with mode: 0644]

diff --git a/third-party/pjproject/patches/0040-brackets-in-via-received-params.patch b/third-party/pjproject/patches/0040-brackets-in-via-received-params.patch
new file mode 100644 (file)
index 0000000..bf96d3d
--- /dev/null
@@ -0,0 +1,40 @@
+From 6324760c2fb0ffeb2e29c6c0a96a33906caa8d5f Mon Sep 17 00:00:00 2001
+From: Sean Bright <sean.bright@gmail.com>
+Date: Thu, 16 Jan 2020 10:46:11 -0500
+Subject: [PATCH] sip_parser.c: Allow brackets in via parameters
+
+From RFC 5118 section 4.5:
+
+  While it would be beneficial if the same non-terminal
+  ("IPv6reference") was used for both the "sent-by" and "via-received"
+  production rules, there has not been a consensus in the working group
+  to that effect.  Thus, the best that can be suggested is that
+  implementations must follow the Robustness Principle [RFC1122] and be
+  liberal in accepting a "received" parameter with or without the
+  delimiting "[" and "]" tokens.  When sending a request,
+  implementations must not put the delimiting "[" and "]" tokens.
+---
+ pjsip/src/pjsip/sip_parser.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c
+index e01e672fb..4f9c7fca4 100644
+--- a/pjsip/src/pjsip/sip_parser.c
++++ b/pjsip/src/pjsip/sip_parser.c
+@@ -384,11 +384,11 @@ static pj_status_t init_parser()
+     status = pj_cis_dup(&pconst.pjsip_VIA_PARAM_SPEC, &pconst.pjsip_TOKEN_SPEC);
+     PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);
+-    pj_cis_add_str(&pconst.pjsip_VIA_PARAM_SPEC, ":");
++    pj_cis_add_str(&pconst.pjsip_VIA_PARAM_SPEC, "[:]");
+     status = pj_cis_dup(&pconst.pjsip_VIA_PARAM_SPEC_ESC, &pconst.pjsip_TOKEN_SPEC_ESC);
+     PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);
+-    pj_cis_add_str(&pconst.pjsip_VIA_PARAM_SPEC_ESC, ":");
++    pj_cis_add_str(&pconst.pjsip_VIA_PARAM_SPEC_ESC, "[:]");
+     status = pj_cis_dup(&pconst.pjsip_HOST_SPEC, &pconst.pjsip_ALNUM_SPEC);
+     PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);
+-- 
+2.20.1
+