aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-09-07 17:17:07 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-09-07 17:17:07 +0000
commitd41058065f9d351120861324b02571f19be10c6a (patch)
tree2f4a02ef234a2dd8043ff8e3b0ffe02f447bb137 /epan
parentff7fda0df5705664202ffe40805596ab77710f6d (diff)
From Mike Morrin:
The GSM L3 part of the BSSMAP CipherModeComplete message is not being decoded. Sligtly modified. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3983 svn path=/trunk/; revision=29776
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-gsm_a_bssmap.c5
-rw-r--r--epan/dissectors/packet-gsm_a_common.h1
-rw-r--r--epan/dissectors/packet-gsm_a_rr.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c
index 4bcf952e00..f473bfd5a6 100644
--- a/epan/dissectors/packet-gsm_a_bssmap.c
+++ b/epan/dissectors/packet-gsm_a_bssmap.c
@@ -2182,8 +2182,9 @@ be_l3_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
*/
l3_tvb = tvb_new_subset(tvb, curr_offset, len, len);
- call_dissector(dtap_handle, l3_tvb, g_pinfo, g_tree);
-
+ /* although not obvious in 48.008, the L3 contents here are
+ the contents of the 44.018 CIPHER MODE COMPLETE PDU */
+ dtap_rr_cip_mode_cpte(l3_tvb, tree, 0, len);
curr_offset += len;
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
diff --git a/epan/dissectors/packet-gsm_a_common.h b/epan/dissectors/packet-gsm_a_common.h
index 3e3e5bc691..ac6a9a2641 100644
--- a/epan/dissectors/packet-gsm_a_common.h
+++ b/epan/dissectors/packet-gsm_a_common.h
@@ -609,6 +609,7 @@ guint16 de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
guint16 de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
void dtap_rr_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len);
+void dtap_rr_cip_mode_cpte(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len);
void bssmap_perf_loc_abort(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len);
void bssmap_reset(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len);
diff --git a/epan/dissectors/packet-gsm_a_rr.c b/epan/dissectors/packet-gsm_a_rr.c
index b8e0cba879..10fdf094c4 100644
--- a/epan/dissectors/packet-gsm_a_rr.c
+++ b/epan/dissectors/packet-gsm_a_rr.c
@@ -6824,7 +6824,7 @@ dtap_rr_cip_mode_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
/*
* 9.1.10 Ciphering Mode Complete
*/
-static void
+void
dtap_rr_cip_mode_cpte(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
{
guint32 curr_offset;