summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-rsl.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-01-26 19:51:48 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-01-26 19:51:48 +0000
commite1d434ee6a56f86ad9e79e2f127382e3bc4409e6 (patch)
tree60dfbfa55e0b364d2caae8193486767a61fe8baf /epan/dissectors/packet-rsl.c
parent6981aa2c2a465247d0b418d5d6c42325b5a595ad (diff)
downloadwireshark-e1d434ee6a56f86ad9e79e2f127382e3bc4409e6.tar.gz
From Mike Morrin:
Add dissectors for GSM and UMTS Cell Broadcast protocols. ( - the patch for gsmtap ) https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6770 svn path=/trunk/; revision=40735
Diffstat (limited to 'epan/dissectors/packet-rsl.c')
-rw-r--r--epan/dissectors/packet-rsl.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c
index 945734ffdc..55fd77b80d 100644
--- a/epan/dissectors/packet-rsl.c
+++ b/epan/dissectors/packet-rsl.c
@@ -171,6 +171,8 @@ static int ett_ie_message_id = -1;
static int ett_ie_sys_info_type = -1;
static proto_tree *top_tree;
+static dissector_handle_t gsm_cbch_handle;
+static dissector_handle_t gsm_cbs_handle;
static dissector_handle_t gsm_a_ccch_handle;
static dissector_handle_t gsm_a_dtap_handle;
static dissector_handle_t gsm_a_sacch_handle;
@@ -1977,6 +1979,7 @@ dissect_rsl_ie_smscb_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
{
proto_item *ti;
proto_tree *ie_tree;
+ tvbuff_t *next_tvb;
guint length;
guint8 ie_id;
@@ -2002,7 +2005,8 @@ dissect_rsl_ie_smscb_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
/*
* SMSCB frame
*/
- proto_tree_add_text(ie_tree, tvb,offset,length,"SMSCB frame");
+ next_tvb = tvb_new_subset(tvb, offset, length, length);
+ call_dissector(gsm_cbch_handle, next_tvb, pinfo, top_tree);
offset = offset + length;
@@ -2202,6 +2206,7 @@ dissect_rsl_ie_smscb_mess(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
{
proto_item *ti;
proto_tree *ie_tree;
+ tvbuff_t *next_tvb;
guint length;
guint8 ie_id;
int ie_offset;
@@ -2228,7 +2233,8 @@ dissect_rsl_ie_smscb_mess(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
* SMSCB Message
*/
- proto_tree_add_text(ie_tree, tvb,offset,length ,"SMSCB Message");
+ next_tvb = tvb_new_subset(tvb, offset, length, length);
+ call_dissector(gsm_cbs_handle, next_tvb, pinfo, top_tree);
offset = ie_offset + length;
@@ -3985,6 +3991,8 @@ proto_reg_handoff_rsl(void)
rsl_handle = create_dissector_handle(dissect_rsl, proto_rsl);
dissector_add_uint("lapd.gsm.sapi", LAPD_GSM_SAPI_RA_SIG_PROC, rsl_handle);
+ gsm_cbch_handle = find_dissector("gsm_cbch");
+ gsm_cbs_handle = find_dissector("gsm_cell_broadcast");
gsm_a_ccch_handle = find_dissector("gsm_a_ccch");
gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
gsm_a_sacch_handle = find_dissector("gsm_a_sacch");