[asterisk-bugs] [Asterisk 0017662]: [patch] IPv6: sip_uri_cmp

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Jul 23 11:33:51 CDT 2010


The following issue has been ASSIGNED. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17662 
====================================================================== 
Reported By:                oej
Assigned To:                mmichelson
====================================================================== 
Project:                    Asterisk
Issue ID:                   17662
Category:                   Channels/chan_sip/IPv6
Reproducibility:            have not tried
Severity:                   minor
Priority:                   normal
Status:                     assigned
Asterisk Version:           SVN 
JIRA:                       SWP-1863 
Regression:                 No 
Reviewboard Link:           https://reviewboard.asterisk.org/r/792 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!): 277027 
Request Review:              
====================================================================== 
Date Submitted:             2010-07-16 07:41 CDT
Last Modified:              2010-07-23 11:33 CDT
====================================================================== 
Summary:                    [patch] IPv6: sip_uri_cmp
Description: 
The sip_uri_cmp function separates on two :'s 


/* Strip off "sip:" from the URI. We know this is present
         * because it was checked back in parse_request()
         */
        strsep(&uri1, ":");
        strsep(&uri2, ":");



and then compares hosts with strcmp...

For IP addresses, you need to do a binary comparision. Since there are
many ways to write the same IPv6 address, and there are ways to write IPv4
embedded in IPv6, you need to compare IP addresses here.

The function also strips of header parameters, so
sip:oej at edvina.net;transport=udp and sip:oej at edvina.net;transport=tcp
becomes the same URI, which they are not.

====================================================================== 

---------------------------------------------------------------------- 
 (0124914) svnbot (reporter) - 2010-07-23 11:33
 https://issues.asterisk.org/view.php?id=17662#c124914 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 278980

U   trunk/channels/chan_sip.c
U   trunk/channels/sip/include/reqresp_parser.h
U   trunk/channels/sip/reqresp_parser.c

------------------------------------------------------------------------
r278980 | mmichelson | 2010-07-23 11:33:50 -0500 (Fri, 23 Jul 2010) | 17
lines

SIP URI comparison fixes.

This initially was created to work around the issue of
using a string comparison instead of a binary comparison
for IP addresses. It evolved a bit when test cases were
created and it was discovered that comparison of URI
parameters was not working exactly as it should.

sip_uri_cmp() and its helpers have been moved to reqresp_parser.c
and a new test has been added.

(closes issue https://issues.asterisk.org/view.php?id=17662)
Reported by: oej

Review: https://reviewboard.asterisk.org/r/792


------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=278980 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-07-23 11:33 svnbot         Checkin                                      
2010-07-23 11:33 svnbot         Note Added: 0124914                          
2010-07-23 11:33 svnbot         Status                   ready for testing =>
assigned
======================================================================




More information about the asterisk-bugs mailing list