forked from osmocom/wireshark
Add "rtp handle protection" inside srtp_add_address/rtp_add_address/bluetooth_add_address so dissectors calling it don't need to find "rtp" just for the handle check.
svn path=/trunk/; revision=53288
This commit is contained in:
parent
99f0fc1d27
commit
7221215cdc
|
@ -60,7 +60,7 @@
|
|||
#define PSNAME "H.245"
|
||||
#define PFNAME "h245"
|
||||
|
||||
static dissector_handle_t rtp_handle=NULL;
|
||||
|
||||
static dissector_handle_t rtcp_handle=NULL;
|
||||
static dissector_table_t nsp_object_dissector_table;
|
||||
static dissector_table_t nsp_h221_dissector_table;
|
||||
|
@ -370,7 +370,7 @@ static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_cha
|
|||
|
||||
/* DEBUG g_warning("h245_setup_channels media_addr.addr.type %u port %u",upcoming_channel_lcl->media_addr.addr.type, upcoming_channel_lcl->media_addr.port );
|
||||
*/
|
||||
if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0 && rtp_handle) {
|
||||
if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
|
||||
srtp_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr,
|
||||
upcoming_channel_lcl->media_addr.port, 0,
|
||||
"H245", pinfo->fd->num, upcoming_channel_lcl->is_video , rtp_dyn_payload, dummy_srtp_info);
|
||||
|
@ -576,7 +576,6 @@ void proto_register_h245(void) {
|
|||
void proto_reg_handoff_h245(void) {
|
||||
dissector_handle_t h245_handle;
|
||||
|
||||
rtp_handle = find_dissector("rtp");
|
||||
rtcp_handle = find_dissector("rtcp");
|
||||
data_handle = find_dissector("data");
|
||||
h263_handle = find_dissector("h263data");
|
||||
|
|
|
@ -720,7 +720,6 @@ static gint ett_vp_algs = -1;
|
|||
static expert_field ei_ansi_a_extraneous_data = EI_INIT;
|
||||
|
||||
static char a_bigbuf[1024];
|
||||
static dissector_handle_t rtp_handle=NULL;
|
||||
static dissector_handle_t data_handle;
|
||||
static dissector_handle_t dtap_handle;
|
||||
static dissector_table_t is637_dissector_table; /* IS-637-A Transport Layer (SMS) */
|
||||
|
@ -8419,8 +8418,7 @@ elem_a2p_bearer_format(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
|
||||
proto_item_set_len(item, curr_offset - orig_offset);
|
||||
|
||||
if (rtp_handle &&
|
||||
format_assigned &&
|
||||
if (format_assigned &&
|
||||
(first_assigned_found == FALSE))
|
||||
{
|
||||
key = wmem_new(wmem_file_scope(), gint);
|
||||
|
@ -12413,7 +12411,6 @@ proto_reg_handoff_ansi_a(void)
|
|||
dtap_handle = create_dissector_handle(dissect_dtap, proto_a_dtap);
|
||||
sip_dtap_bsmap_handle = create_dissector_handle(dissect_sip_dtap_bsmap, proto_a_dtap);
|
||||
data_handle = find_dissector("data");
|
||||
rtp_handle = find_dissector("rtp");
|
||||
|
||||
dissector_add_uint("bsap.pdu_type", BSSAP_PDU_TYPE_BSMAP, bsmap_handle);
|
||||
dissector_add_uint("bsap.pdu_type", BSSAP_PDU_TYPE_DTAP, dtap_handle);
|
||||
|
|
|
@ -664,7 +664,6 @@ static dissector_handle_t gsm_bsslap_handle = NULL;
|
|||
static dissector_handle_t dtap_handle;
|
||||
static dissector_handle_t bssgp_handle;
|
||||
static dissector_handle_t rrc_handle;
|
||||
static dissector_handle_t rtp_handle;
|
||||
|
||||
static proto_tree *g_tree;
|
||||
static guint8 cell_discriminator = 0x0f; /* tracks whether handover is to UMTS */
|
||||
|
@ -3871,7 +3870,7 @@ be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
|
|||
break;
|
||||
}
|
||||
|
||||
if ((!pinfo->fd->flags.visited) && rtp_port != 0 && rtp_handle) {
|
||||
if ((!pinfo->fd->flags.visited) && rtp_port != 0) {
|
||||
rtp_add_address(pinfo, &rtp_dst_addr, rtp_port, 0, "BSS MAP", pinfo->fd->num, FALSE, 0);
|
||||
rtcp_add_address(pinfo, &rtp_dst_addr, rtp_port+1, 0, "BSS MAP", pinfo->fd->num);
|
||||
}
|
||||
|
@ -8139,7 +8138,6 @@ proto_reg_handoff_gsm_a_bssmap(void)
|
|||
gsm_bsslap_handle = find_dissector("gsm_bsslap");
|
||||
bssgp_handle = find_dissector ("bssgp");
|
||||
rrc_handle = find_dissector ("rrc");
|
||||
rtp_handle = find_dissector("rtp");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
#define PSNAME "H.245"
|
||||
#define PFNAME "h245"
|
||||
|
||||
static dissector_handle_t rtp_handle=NULL;
|
||||
|
||||
static dissector_handle_t rtcp_handle=NULL;
|
||||
static dissector_table_t nsp_object_dissector_table;
|
||||
static dissector_table_t nsp_h221_dissector_table;
|
||||
|
@ -501,7 +501,7 @@ static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_cha
|
|||
|
||||
/* DEBUG g_warning("h245_setup_channels media_addr.addr.type %u port %u",upcoming_channel_lcl->media_addr.addr.type, upcoming_channel_lcl->media_addr.port );
|
||||
*/
|
||||
if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0 && rtp_handle) {
|
||||
if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
|
||||
srtp_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr,
|
||||
upcoming_channel_lcl->media_addr.port, 0,
|
||||
"H245", pinfo->fd->num, upcoming_channel_lcl->is_video , rtp_dyn_payload, dummy_srtp_info);
|
||||
|
@ -20777,7 +20777,6 @@ void proto_register_h245(void) {
|
|||
void proto_reg_handoff_h245(void) {
|
||||
dissector_handle_t h245_handle;
|
||||
|
||||
rtp_handle = find_dissector("rtp");
|
||||
rtcp_handle = find_dissector("rtcp");
|
||||
data_handle = find_dissector("data");
|
||||
h263_handle = find_dissector("h263data");
|
||||
|
|
|
@ -829,7 +829,7 @@ bluetooth_add_address(packet_info *pinfo, address *addr,
|
|||
* we've already done this work, so we don't need to do it
|
||||
* again.
|
||||
*/
|
||||
if (pinfo->fd->flags.visited)
|
||||
if ((pinfo->fd->flags.visited) || (rtp_handle == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -913,7 +913,7 @@ srtp_add_address(packet_info *pinfo, address *addr, int port, int other_port,
|
|||
* we've already done this work, so we don't need to do it
|
||||
* again.
|
||||
*/
|
||||
if (pinfo->fd->flags.visited)
|
||||
if ((pinfo->fd->flags.visited) || (rtp_handle == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
#include "packet-h264.h"
|
||||
#include "packet-mp4ves.h"
|
||||
|
||||
static dissector_handle_t rtp_handle;
|
||||
static dissector_handle_t rtcp_handle;
|
||||
static dissector_handle_t sprt_handle;
|
||||
static dissector_handle_t msrp_handle;
|
||||
|
@ -1837,8 +1836,7 @@ setup_sdp_transport(tvbuff_t *tvb, packet_info *pinfo, enum sdp_exchange_type ex
|
|||
if ((transport_info->media_port[n] != 0) &&
|
||||
(transport_info->proto_bitmask[n] & (SDP_RTP_PROTO|SDP_SRTP_PROTO)) &&
|
||||
(transport_info->proto_bitmask[n] & (SDP_IPv4|SDP_IPv6))) {
|
||||
if (rtp_handle) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
srtp_info = wmem_new0(wmem_file_scope(), struct srtp_info);
|
||||
if (transport_info->encryption_algorithm != SRTP_ENC_ALG_NOT_SET) {
|
||||
srtp_info->encryption_algorithm = transport_info->encryption_algorithm;
|
||||
|
@ -1850,15 +1848,15 @@ setup_sdp_transport(tvbuff_t *tvb, packet_info *pinfo, enum sdp_exchange_type ex
|
|||
srtp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n], 0, "SDP", pinfo->fd->num,
|
||||
(transport_info->proto_bitmask[n] & SDP_VIDEO) ? TRUE : FALSE,
|
||||
transport_info->media[n].rtp_dyn_payload, srtp_info);
|
||||
} else {
|
||||
} else {
|
||||
rtp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n], 0, "SDP", pinfo->fd->num,
|
||||
(transport_info->proto_bitmask[n] & SDP_VIDEO) ? TRUE : FALSE,
|
||||
transport_info->media[n].rtp_dyn_payload);
|
||||
}
|
||||
transport_info->media[n].set_rtp = TRUE;
|
||||
/* SPRT might use the same port... */
|
||||
current_rtp_port = transport_info->media_port[n];
|
||||
}
|
||||
transport_info->media[n].set_rtp = TRUE;
|
||||
/* SPRT might use the same port... */
|
||||
current_rtp_port = transport_info->media_port[n];
|
||||
|
||||
if (rtcp_handle) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
srtcp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n]+1, 0, "SDP", pinfo->fd->num, srtp_info);
|
||||
|
@ -2178,8 +2176,7 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
(transport_info->media_port[n] != 0) &&
|
||||
(transport_info->proto_bitmask[n] & (SDP_RTP_PROTO|SDP_SRTP_PROTO)) &&
|
||||
(transport_info->proto_bitmask[n] & (SDP_IPv4|SDP_IPv6))) {
|
||||
if (rtp_handle) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
srtp_info = wmem_new0(wmem_file_scope(), struct srtp_info);
|
||||
if (transport_info->encryption_algorithm != SRTP_ENC_ALG_NOT_SET) {
|
||||
srtp_info->encryption_algorithm = transport_info->encryption_algorithm;
|
||||
|
@ -2190,15 +2187,15 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
srtp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n], 0, "SDP", pinfo->fd->num,
|
||||
(transport_info->proto_bitmask[n] & SDP_VIDEO) ? TRUE : FALSE,
|
||||
transport_info->media[n].rtp_dyn_payload, srtp_info);
|
||||
} else {
|
||||
} else {
|
||||
rtp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n], 0, "SDP", pinfo->fd->num,
|
||||
(transport_info->proto_bitmask[n] & SDP_VIDEO) ? TRUE : FALSE,
|
||||
transport_info->media[n].rtp_dyn_payload);
|
||||
}
|
||||
transport_info->media[n].set_rtp = TRUE;
|
||||
/* SPRT might use the same port... */
|
||||
current_rtp_port = transport_info->media_port[n];
|
||||
}
|
||||
transport_info->media[n].set_rtp = TRUE;
|
||||
/* SPRT might use the same port... */
|
||||
current_rtp_port = transport_info->media_port[n];
|
||||
|
||||
if (rtcp_handle) {
|
||||
if (transport_info->proto_bitmask[n] & SDP_SRTP_PROTO) {
|
||||
srtcp_add_address(pinfo, &transport_info->src_addr[n], transport_info->media_port[n]+1, 0, "SDP", pinfo->fd->num, srtp_info);
|
||||
|
@ -2734,7 +2731,6 @@ proto_reg_handoff_sdp(void)
|
|||
{
|
||||
dissector_handle_t sdp_handle;
|
||||
|
||||
rtp_handle = find_dissector("rtp");
|
||||
rtcp_handle = find_dissector("rtcp");
|
||||
msrp_handle = find_dissector("msrp");
|
||||
sprt_handle = find_dissector("sprt");
|
||||
|
|
|
@ -1374,8 +1374,6 @@ static gint ett_skinny_softKeyMap = -1;
|
|||
/* desegmentation of SCCP */
|
||||
static gboolean skinny_desegment = TRUE;
|
||||
|
||||
static dissector_handle_t rtp_handle=NULL;
|
||||
|
||||
/* tap register id */
|
||||
static int skinny_tap = -1;
|
||||
|
||||
|
@ -1629,22 +1627,24 @@ dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
|
|||
|
||||
case 0x0022: /* OpenReceiveChannelAck */
|
||||
if (hdr_version == BASIC_MSG_TYPE) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_ORCStatus, tvb, offset+12, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+16, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+20, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+24, 4, ENC_LITTLE_ENDIAN);
|
||||
if (rtp_handle) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+16);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+20), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
}
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+16);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+20), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
|
||||
si->passThruId = tvb_get_letohl(tvb, offset+24);
|
||||
} else if (hdr_version == CM7_MSG_TYPE_A || hdr_version == CM7_MSG_TYPE_B || hdr_version == CM7_MSG_TYPE_C || hdr_version == CM7_MSG_TYPE_D) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_ORCStatus, tvb, offset+12, 4, ENC_LITTLE_ENDIAN);
|
||||
/*Assume the field of next 4 bytes is IP Version*/
|
||||
ipversion = tvb_get_ntohl(tvb, offset+16);
|
||||
|
@ -1657,16 +1657,13 @@ dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
|
|||
}
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+36, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+40, 4, ENC_LITTLE_ENDIAN);
|
||||
if (rtp_handle) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+20);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+36), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
}
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+20);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+36), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
|
||||
si->passThruId = tvb_get_letohl(tvb, offset+40);
|
||||
}
|
||||
break;
|
||||
|
@ -2298,6 +2295,9 @@ dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
|
|||
|
||||
case 0x008a: /* StartMediaTransmission */
|
||||
if (hdr_version == BASIC_MSG_TYPE) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_remoteIpAddr, tvb, offset+20, 4, ENC_BIG_ENDIAN);
|
||||
|
@ -2308,20 +2308,20 @@ dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
|
|||
proto_tree_add_item(skinny_tree, hf_skinny_silenceSuppression, tvb, offset+40, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_maxFramesPerPacket, tvb, offset+44, 2, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+48, 4, ENC_LITTLE_ENDIAN);
|
||||
if (rtp_handle) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (char *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+20);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+24), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
}
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (char *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+20);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+24), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
|
||||
si->passThruId = tvb_get_letohl(tvb, offset+16);
|
||||
}
|
||||
else if (hdr_version == CM7_MSG_TYPE_A || hdr_version == CM7_MSG_TYPE_B || hdr_version == CM7_MSG_TYPE_C || hdr_version == CM7_MSG_TYPE_D)
|
||||
{
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, ENC_LITTLE_ENDIAN);
|
||||
/*Assume the field of next 4 bytes is IP Version*/
|
||||
|
@ -2344,16 +2344,13 @@ dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
|
|||
/* proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+66, 4, ENC_LITTLE_ENDIAN); */
|
||||
/* proto_tree_add_item(skinny_tree, hf_skinny_rtpDTMFPayload, tvb, offset+126, 4, ENC_LITTLE_ENDIAN); */
|
||||
/* proto_tree_add_item(skinny_tree, hf_skinny_rtptimeout, tvb, offset+130, 4, ENC_LITTLE_ENDIAN); */
|
||||
if (rtp_handle) {
|
||||
address src_addr;
|
||||
guint32 ipv4_address;
|
||||
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (char *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+24);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+40), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
}
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (char *)&ipv4_address;
|
||||
ipv4_address = tvb_get_ipv4(tvb, offset+24);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset+40), 0, "Skinny", pinfo->fd->num, is_video, NULL);
|
||||
|
||||
si->passThruId = tvb_get_letohl(tvb, offset+16);
|
||||
}
|
||||
break;
|
||||
|
@ -5379,7 +5376,6 @@ proto_reg_handoff_skinny(void)
|
|||
dissector_handle_t skinny_handle;
|
||||
|
||||
if (!skinny_prefs_initialized) {
|
||||
rtp_handle = find_dissector("rtp");
|
||||
/* Skinny content type and internet media type used by other dissectors are the same */
|
||||
media_type_dissector_table = find_dissector_table("media_type");
|
||||
skinny_handle = new_create_dissector_handle(dissect_skinny, proto_skinny);
|
||||
|
|
|
@ -78,7 +78,6 @@ static dissector_handle_t uma_tcp_handle;
|
|||
static dissector_handle_t uma_udp_handle;
|
||||
static dissector_handle_t data_handle;
|
||||
static dissector_table_t bssap_pdu_type_table;
|
||||
static dissector_handle_t rtp_handle;
|
||||
static dissector_handle_t rtcp_handle;
|
||||
static dissector_handle_t llc_handle;
|
||||
|
||||
|
@ -1528,8 +1527,8 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
|
|||
proto_tree_add_item(urr_ie_tree, hf_uma_urr_RTP_port, tvb, ie_offset, 2, ENC_BIG_ENDIAN);
|
||||
/* TODO find out exactly which element contains IP addr */
|
||||
/* Debug
|
||||
proto_tree_add_text(urr_ie_tree,tvb,ie_offset,ie_len,"IP %u, Port %u Handle %u",
|
||||
rtp_ipv4_address,RTP_UDP_port,rtp_handle);
|
||||
proto_tree_add_text(urr_ie_tree,tvb,ie_offset,ie_len,"IP %u, Port %u,
|
||||
rtp_ipv4_address,RTP_UDP_port);
|
||||
*/
|
||||
if(unc_ipv4_address!=0){
|
||||
SET_ADDRESS(&src_addr, AT_IPv4, 4, &unc_ipv4_address);
|
||||
|
@ -1537,7 +1536,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
|
|||
/* Set Source IP = own IP */
|
||||
src_addr = pinfo->src;
|
||||
}
|
||||
if((!pinfo->fd->flags.visited) && RTP_UDP_port!=0 && rtp_handle){
|
||||
if((!pinfo->fd->flags.visited) && RTP_UDP_port!=0){
|
||||
|
||||
rtp_add_address(pinfo, &src_addr, RTP_UDP_port, 0, "UMA", pinfo->fd->num, FALSE, 0);
|
||||
if ((RTP_UDP_port & 0x1) == 0){ /* Even number RTP port RTCP should follow on odd number */
|
||||
|
@ -1758,7 +1757,6 @@ proto_reg_handoff_uma(void)
|
|||
uma_udp_handle = find_dissector("umaudp");
|
||||
dissector_add_handle("udp.port", uma_udp_handle); /* for "decode-as" */
|
||||
data_handle = find_dissector("data");
|
||||
rtp_handle = find_dissector("rtp");
|
||||
rtcp_handle = find_dissector("rtcp");
|
||||
llc_handle = find_dissector("llcgprs");
|
||||
bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
|
||||
|
|
Loading…
Reference in New Issue