diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-09-19 08:37:59 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-09-19 08:37:59 +0000 |
commit | d603c0b3acb45dd5598d4f714460506ac6a82c99 (patch) | |
tree | 9e5571233d3578bc7f68292531150f9fb0484691 /epan/dissectors/packet-sip.c | |
parent | 3d3a1580a1b1a8a9e3716cd3527a0e3be13cef28 (diff) |
Move stuff inside if(tree)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@39038 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-sip.c')
-rw-r--r-- | epan/dissectors/packet-sip.c | 99 |
1 files changed, 48 insertions, 51 deletions
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c index b3085baa4b..51116a4079 100644 --- a/epan/dissectors/packet-sip.c +++ b/epan/dissectors/packet-sip.c @@ -2043,18 +2043,16 @@ dissect_sip_common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr /* To = ( "To" / "t" ) HCOLON ( name-addr * / addr-spec ) *( SEMI to-param ) */ - } - sip_uri_offset_init(&uri_offsets); - if((dissect_sip_name_addr_or_addr_spec(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1){ - display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_to_uri); - if((uri_offsets.name_addr_start != -1) && (uri_offsets.name_addr_end != -1)){ - stat_info->tap_to_addr=tvb_get_ephemeral_string(tvb, uri_offsets.name_addr_start, - uri_offsets.name_addr_end - uri_offsets.name_addr_start); + sip_uri_offset_init(&uri_offsets); + if((dissect_sip_name_addr_or_addr_spec(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1){ + display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_to_uri); + if((uri_offsets.name_addr_start != -1) && (uri_offsets.name_addr_end != -1)){ + stat_info->tap_to_addr=tvb_get_ephemeral_string(tvb, uri_offsets.name_addr_start, + uri_offsets.name_addr_end - uri_offsets.name_addr_start); + } + offset = uri_offsets.name_addr_end +1; } - offset = uri_offsets.name_addr_end +1; - } - if(hdr_tree) { /* Find parameter tag if present. * TODO make this generic to find any interesting parameter * use the same method as for SIP headers ? @@ -2095,23 +2093,22 @@ dissect_sip_common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr value, "%s", tvb_format_text(tvb, offset, linelen)); sip_element_tree = proto_item_add_subtree( sip_element_item, ett_sip_element); - } /* * From = ( "From" / "f" ) HCOLON from-spec * from-spec = ( name-addr / addr-spec ) * *( SEMI from-param ) */ - sip_uri_offset_init(&uri_offsets); - if((dissect_sip_name_addr_or_addr_spec(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1){ - display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_from_uri); - if((uri_offsets.name_addr_start != -1) && (uri_offsets.name_addr_end != -1)){ - stat_info->tap_from_addr=tvb_get_ephemeral_string(tvb, uri_offsets.name_addr_start, - uri_offsets.name_addr_end - uri_offsets.name_addr_start); + sip_uri_offset_init(&uri_offsets); + if((dissect_sip_name_addr_or_addr_spec(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1){ + display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_from_uri); + if((uri_offsets.name_addr_start != -1) && (uri_offsets.name_addr_end != -1)){ + stat_info->tap_from_addr=tvb_get_ephemeral_string(tvb, uri_offsets.name_addr_start, + uri_offsets.name_addr_end - uri_offsets.name_addr_start); + } + offset = uri_offsets.name_addr_end +1; } - offset = uri_offsets.name_addr_end +1; - } - if(hdr_tree) { + /* Find parameter tag if present. * TODO make this generic to find any interesting parameter * use the same method as for SIP headers ? @@ -2231,41 +2228,41 @@ dissect_sip_common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr sip_element_tree = proto_item_add_subtree( sip_element_item, ett_sip_element); - } - /* - * Trigger-Consent = "Trigger-Consent" HCOLON trigger-cons-spec - * *( COMMA trigger-cons-spec ) - * trigger-cons-spec = ( SIP-URI / SIPS-URI ) - * *( SEMI trigger-param ) - * trigger-param = target-uri / generic-param - * target-uri = "target-uri" EQUAL - * LDQUOT *( qdtext / quoted-pair ) RDQUOT - * Initialize the uri_offsets - */ - sip_uri_offset_init(&uri_offsets); - if((dissect_sip_uri(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1) { - - tc_uri_item_tree = display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_tc_uri); - if (line_end_offset > uri_offsets.uri_end) { - gint hparam_offset = uri_offsets.uri_end + 1; - /* Is there a header parameter */ - if (tvb_find_guint8(tvb, hparam_offset, 1,';')) { - while ((hparam_offset != -1 && hparam_offset < line_end_offset) ) { - /* Is this a target-uri ? */ - hparam_offset = hparam_offset + 1; - if (tvb_strncaseeql(tvb, hparam_offset, "target-uri=\"", 12) == 0) { - gint turi_start_offset = hparam_offset + 12; - gint turi_end_offset = tvb_find_guint8(tvb, turi_start_offset, -1,'\"'); - if (turi_end_offset != -1) - proto_tree_add_item(tc_uri_item_tree, hf_sip_tc_turi, tvb, turi_start_offset,(turi_end_offset - turi_start_offset),FALSE); - else - break; /* malformed */ + /* + * Trigger-Consent = "Trigger-Consent" HCOLON trigger-cons-spec + * *( COMMA trigger-cons-spec ) + * trigger-cons-spec = ( SIP-URI / SIPS-URI ) + * *( SEMI trigger-param ) + * trigger-param = target-uri / generic-param + * target-uri = "target-uri" EQUAL + * LDQUOT *( qdtext / quoted-pair ) RDQUOT + * Initialize the uri_offsets + */ + sip_uri_offset_init(&uri_offsets); + if((dissect_sip_uri(tvb, pinfo, value_offset, line_end_offset+2, &uri_offsets)) != -1) { + + tc_uri_item_tree = display_sip_uri(tvb, sip_element_tree, &uri_offsets, &sip_tc_uri); + if (line_end_offset > uri_offsets.uri_end) { + gint hparam_offset = uri_offsets.uri_end + 1; + /* Is there a header parameter */ + if (tvb_find_guint8(tvb, hparam_offset, 1,';')) { + while ((hparam_offset != -1 && hparam_offset < line_end_offset) ) { + /* Is this a target-uri ? */ + hparam_offset = hparam_offset + 1; + if (tvb_strncaseeql(tvb, hparam_offset, "target-uri=\"", 12) == 0) { + gint turi_start_offset = hparam_offset + 12; + gint turi_end_offset = tvb_find_guint8(tvb, turi_start_offset, -1,'\"'); + if (turi_end_offset != -1) + proto_tree_add_item(tc_uri_item_tree, hf_sip_tc_turi, tvb, turi_start_offset,(turi_end_offset - turi_start_offset),FALSE); + else + break; /* malformed */ + } + hparam_offset = tvb_find_guint8(tvb, hparam_offset, -1,';'); } - hparam_offset = tvb_find_guint8(tvb, hparam_offset, -1,';'); } } } - } + }/* hdr_tree */ break; case POS_CSEQ : |