aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sdp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-sdp.c')
-rw-r--r--epan/dissectors/packet-sdp.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c
index 0c933f8194..1826fa0ec0 100644
--- a/epan/dissectors/packet-sdp.c
+++ b/epan/dissectors/packet-sdp.c
@@ -1678,6 +1678,22 @@ static void dissect_sdp_media_attribute(tvbuff_t *tvb, packet_info *pinfo, proto
break;
case SDP_PATH:
/* msrp attributes that contain address needed for conversation */
+ /* RFC 4975
+ * path = path-label ":" path-list
+ * path-label = "path"
+ * path-list= MSRP-URI *(SP MSRP-URI)
+ * MSRP-URI = msrp-scheme "://" authority
+ * ["/" session-id] ";" transport *( ";" URI-parameter)
+ * ; authority as defined in RFC3986
+ *
+ * msrp-scheme = "msrp" / "msrps"
+ * RFC 3986
+ * The authority component is preceded by a double slash ("//") and is terminated by
+ * the next slash ("/"), question mark ("?"), or number sign ("#") character, or by
+ * the end of the URI.
+ */
+
+ /* Check for "msrp://" */
if (strncmp((char*)attribute_value, msrp_res, strlen(msrp_res)) == 0){
int address_offset, port_offset, port_end_offset;
@@ -1687,7 +1703,7 @@ static void dissect_sdp_media_attribute(tvbuff_t *tvb, packet_info *pinfo, proto
/* Port is after next ':' */
port_offset = tvb_find_guint8(tvb, address_offset, -1, ':');
/* Check if port is present if not skipp */
- if(port_offset!=-1){
+ if(port_offset!= -1){
/* Port ends with '/' */
port_end_offset = tvb_find_guint8(tvb, port_offset, -1, '/');