[asterisk-commits] wdoekes: trunk r382109 - in /trunk: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Feb 26 13:36:34 CST 2013
Author: wdoekes
Date: Tue Feb 26 13:36:30 2013
New Revision: 382109
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=382109
Log:
Correct RPID parsing for unquoted display-name.
Parsing Remote-Party-ID will now succeed if display-name is of the
*(token LWS) kind and not just the quoted-string kind.
Review: https://reviewboard.asterisk.org/r/2341/
........
Merged revisions 382107 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 382108 from http://svn.asterisk.org/svn/asterisk/branches/11
Modified:
trunk/ (props changed)
trunk/channels/chan_sip.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.
Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=382109&r1=382108&r2=382109
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Tue Feb 26 13:36:30 2013
@@ -17243,7 +17243,16 @@
return get_pai(p, req);
}
+ /*
+ * RPID is not:
+ * rpid = (name-addr / addr-spec) *(SEMI rpi-token)
+ * But it is:
+ * rpid = [display-name] LAQUOT addr-spec RAQUOT *(SEMI rpi-token)
+ * Ergo, calling parse_name_andor_addr() on it wouldn't be
+ * correct because that would allow addr-spec style too.
+ */
start = tmp;
+ /* Quoted (note that we're not dealing with escapes properly) */
if (*start == '"') {
*start++ = '\0';
end = strchr(start, '"');
@@ -17252,6 +17261,17 @@
*end++ = '\0';
cid_name = start;
start = ast_skip_blanks(end);
+ /* Unquoted */
+ } else {
+ cid_name = start;
+ start = end = strchr(start, '<');
+ if (!start) {
+ return 0;
+ }
+ /* trim blanks if there are any. the mandatory NUL is done below */
+ while (--end >= cid_name && *end < 33) {
+ *end = '\0';
+ }
}
if (*start != '<')
More information about the asterisk-commits
mailing list