diff options
author | Guy Harris <guy@alum.mit.edu> | 2004-08-30 10:03:54 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2004-08-30 10:03:54 +0000 |
commit | 344dddb12472768b88d16d853d315e090d240108 (patch) | |
tree | 7c765788891ec88840ef8d06b1a132bb3ef96906 /epan/dissectors/packet-skinny.c | |
parent | e74f18ee9be6df91e5e04fe65deea6ca36dceb73 (diff) |
Pass an "address *" to "rtp_add_address()" and "rtcp_add_address()", so
so that they could handle IPv6 addresses.
Clean up white space.
svn path=/trunk/; revision=11854
Diffstat (limited to 'epan/dissectors/packet-skinny.c')
-rw-r--r-- | epan/dissectors/packet-skinny.c | 108 |
1 files changed, 59 insertions, 49 deletions
diff --git a/epan/dissectors/packet-skinny.c b/epan/dissectors/packet-skinny.c index 0ffb1b100c..426b01f928 100644 --- a/epan/dissectors/packet-skinny.c +++ b/epan/dissectors/packet-skinny.c @@ -1389,9 +1389,14 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+20, 4, TRUE); proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+24, 4, TRUE); if((!pinfo->fd->flags.visited) && rtp_handle){ - guint32 ipv4_address; - tvb_memcpy(tvb, (char*)&ipv4_address, offset+16, 4); - rtp_add_address(pinfo, (char *)&ipv4_address, tvb_get_letohl(tvb, offset+20), 0, "Skinny", pinfo->fd->num); + address src_addr; + guint32 ipv4_address; + + src_addr.type=AT_IPv4; + src_addr.len=4; + src_addr.data=(char *)&ipv4_address; + tvb_memcpy(tvb, (char *)&ipv4_address, offset+16, 4); + rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+20), 0, "Skinny", pinfo->fd->num); } break; @@ -1480,8 +1485,8 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree_add_item(skinny_tree, hf_skinny_customPictureFormatCount, tvb, offset+28, 4, TRUE); count = offset+32; for ( i = 0; i < MAX_CUSTOM_PICTURES; i++ ) { - ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "customPictureFormat[%d]", i); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "customPictureFormat[%d]", i); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureWidth, tvb, count, 4, TRUE); count+= 4; proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureHeight, tvb, count, 4, TRUE); @@ -1493,8 +1498,8 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree_add_item(skinny_sub_tree, hf_skinny_clockDivisor, tvb, count, 4, TRUE); count+= 4; } - ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "confResources"); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "confResources"); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); proto_tree_add_item(skinny_sub_tree, hf_skinny_activeStreamsOnRegistration, tvb, count, 4, TRUE); count+= 4; proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBW, tvb, count, 4, TRUE); @@ -1503,14 +1508,14 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr count+= 4; skinny_sub_tree_sav = skinny_sub_tree; for ( i = 0; i < MAX_SERVICE_TYPE; i++ ) { - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "serviceResource[%d]", i); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "serviceResource[%d]", i); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); proto_tree_add_item(skinny_sub_tree, hf_skinny_layoutCount, tvb, count, 4, TRUE); count+= 4; skinny_sub_tree_sav_sav = skinny_sub_tree_sav; for ( t = 0; t < MAX_LAYOUT_WITH_SAME_SERVICE; t++ ) { - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "layouts[%d]", t); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "layouts[%d]", t); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); proto_tree_add_item(skinny_sub_tree, hf_skinny_layout, tvb, count, 4, TRUE); count+= 4; } @@ -1525,79 +1530,79 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr count+= 4; } for ( i = 0; i < StationMaxCapabilities; i++ ) { - ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "audiocaps[%d]", i); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "audiocaps[%d]", i); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_maxFramesPerPacket, tvb, count, 2, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_maxFramesPerPacket, tvb, count, 2, TRUE); count+= 4; /* skip past union it is only for G723 */ count+= 8; } for ( i = 0; i < StationMaxVideoCapabilities; i++ ) { - ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "vidCaps[%d]", i); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "vidCaps[%d]", i); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_levelPreferenceCount, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_levelPreferenceCount, tvb, count, 4, TRUE); count+= 4; skinny_sub_tree_sav = skinny_sub_tree; for ( t = 0; t < MAX_LEVEL_PREFERENCE; t++ ) { - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "levelPreference[%d]", t); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitPreference, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "levelPreference[%d]", t); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitPreference, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_format, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_format, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_minBitRate, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_minBitRate, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_MPI, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_MPI, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_serviceNumber, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_serviceNumber, tvb, count, 4, TRUE); count+= 4; } val = count; /* H.261 */ - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h261VideoCapability"); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOffCapability, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h261VideoCapability"); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOffCapability, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_stillImageTransmission, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_stillImageTransmission, tvb, count, 4, TRUE); count+= 4; /* H.263 */ count = val; - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h263VideoCapability"); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_h263_capability_bitfield, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h263VideoCapability"); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_h263_capability_bitfield, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_annexNandWFutureUse, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_annexNandWFutureUse, tvb, count, 4, TRUE); count+= 4; /* Video */ count = val; - ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "vieoVideoCapability"); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_modelNumber, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "vieoVideoCapability"); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_modelNumber, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_bandwidth, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_bandwidth, tvb, count, 4, TRUE); count+= 4; } for ( i = 0; i < StationMaxDataCapabilities; i++ ) { - ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "dataCaps[%d]", i); - skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); - proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); + ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "dataCaps[%d]", i); + skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree); + proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_protocolDependentData, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_protocolDependentData, tvb, count, 4, TRUE); count+= 4; - proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE); + proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE); count+= 4; } break; @@ -1765,9 +1770,14 @@ static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr proto_tree_add_item(skinny_tree, hf_skinny_maxFramesPerPacket, tvb, offset+44, 2, TRUE); proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+48, 4, TRUE); if((!pinfo->fd->flags.visited) && rtp_handle){ - guint32 ipv4_address; - tvb_memcpy(tvb, (char*)&ipv4_address, offset+20, 4); - rtp_add_address(pinfo, (char *)&ipv4_address, tvb_get_letohl(tvb, offset+24), 0, "Skinny", pinfo->fd->num); + address src_addr; + guint32 ipv4_address; + + src_addr.type=AT_IPv4; + src_addr.len=4; + src_addr.data=(char *)&ipv4_address; + tvb_memcpy(tvb, (char *)&ipv4_address, offset+20, 4); + rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+24), 0, "Skinny", pinfo->fd->num); } break; |