aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nas_eps.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-11-23 10:56:36 -0500
committerMichael Mann <mmann78@netscape.net>2015-11-23 17:36:39 +0000
commit57e18b00346f86f0b5d182fcc749a1a005fadb96 (patch)
tree9e588cfef7c1110e8f7423a550787e8c06c35e69 /epan/dissectors/packet-nas_eps.c
parent5afbf7e0e5c8116002cbd06abce48b410855d5e1 (diff)
register_dissector -> new_register_dissector
Change-Id: Ifc8208e1b96e2a3bf297912500a5f252bfa8eed9 Reviewed-on: https://code.wireshark.org/review/12073 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-nas_eps.c')
-rw-r--r--epan/dissectors/packet-nas_eps.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c
index 21730d8fed..ee1999b31e 100644
--- a/epan/dissectors/packet-nas_eps.c
+++ b/epan/dissectors/packet-nas_eps.c
@@ -4849,8 +4849,8 @@ dissect_nas_eps_emm_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
}
-static void
-dissect_nas_eps_plain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_nas_eps_plain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
proto_tree *nas_eps_tree;
@@ -4873,7 +4873,7 @@ dissect_nas_eps_plain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item(nas_eps_tree, hf_gsm_a_L3_protocol_discriminator, tvb, 0, 1, ENC_BIG_ENDIAN);
offset++;
nas_emm_service_req(tvb, nas_eps_tree, pinfo, offset, tvb_reported_length(tvb)-offset);
- return;
+ return tvb_captured_length(tvb);
}
pd &= 0x0f;
@@ -4905,6 +4905,7 @@ dissect_nas_eps_plain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
+ return tvb_captured_length(tvb);
}
/* TS 24.301 8.2.1
@@ -4938,8 +4939,8 @@ dissect_nas_eps_plain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* 4.4.4.2 All ESM messages are integrity protected.
*/
-static void
-dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
proto_tree *nas_eps_tree;
@@ -4952,13 +4953,13 @@ dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* The protected NAS message header is 6 octets long, and the NAS message header is at least 2 octets long. */
/* If the length of the tvbuffer is less than 8 octets, we can safely conclude the message is not protected. */
if (len < 8) {
- dissect_nas_eps_plain(tvb, pinfo, tree);
- return;
+ dissect_nas_eps_plain(tvb, pinfo, tree, data);
+ return tvb_captured_length(tvb);
}
if (g_nas_eps_dissect_plain) {
- dissect_nas_eps_plain(tvb, pinfo, tree);
- return;
+ dissect_nas_eps_plain(tvb, pinfo, tree, data);
+ return tvb_captured_length(tvb);
}
/* make entry in the Protocol column on summary display */
@@ -4979,17 +4980,17 @@ dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (pd == 7) {
/* Plain EPS mobility management messages. */
dissect_nas_eps_emm_msg(tvb, pinfo, nas_eps_tree, offset, FALSE);
- return;
+ return tvb_captured_length(tvb);
} else {
proto_tree_add_expert(nas_eps_tree, pinfo, &ei_nas_eps_esm_tp_not_integ_prot, tvb, offset, len);
- return;
+ return tvb_captured_length(tvb);
}
} else {
/* SERVICE REQUEST (12 or greater) is not a plain NAS message treat separately */
if (security_header_type >= 12) {
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Service request");
nas_emm_service_req(tvb, nas_eps_tree, pinfo, offset, len-offset);
- return;
+ return tvb_captured_length(tvb);
}
/* Message authentication code */
proto_tree_add_item(nas_eps_tree, hf_nas_eps_msg_auth_code, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -5008,7 +5009,7 @@ dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if ((pd != 7) && (pd != 15) &&
(((pd&0x0f) != 2) || (((pd&0x0f) == 2) && ((pd&0xf0) > 0) && ((pd&0xf0) < 0x50)))) {
proto_tree_add_item(nas_eps_tree, hf_nas_eps_ciphered_msg, tvb, offset, len-6, ENC_NA);
- return;
+ return tvb_captured_length(tvb);
}
} else {
/* msg_auth_code == 0, probably not ciphered */
@@ -5053,6 +5054,7 @@ dissect_nas_eps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
+ return tvb_captured_length(tvb);
}
void
@@ -5917,10 +5919,10 @@ proto_register_nas_eps(void)
expert_register_field_array(expert_nas_eps, ei, array_length(ei));
/* Register dissector */
- register_dissector(PFNAME, dissect_nas_eps, proto_nas_eps);
+ new_register_dissector(PFNAME, dissect_nas_eps, proto_nas_eps);
/* Register dissector */
- register_dissector("nas-eps_plain", dissect_nas_eps_plain, proto_nas_eps);
+ new_register_dissector("nas-eps_plain", dissect_nas_eps_plain, proto_nas_eps);
/* Register configuration options to always dissect as plain messages */
nas_eps_module = prefs_register_protocol(proto_nas_eps, NULL);