diff options
author | Michael Mann <mmann78@netscape.net> | 2013-09-22 00:50:24 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-09-22 00:50:24 +0000 |
commit | 6ceb84b10bbfbb9743be074016b7de8cbab9bbcb (patch) | |
tree | 4ba4dfcbe710c7dff825412ea566250976aab314 /plugins/wimax/msg_pkm.c | |
parent | 39d3b8c16a0317d94f05b9e4c9eef541ee0515ee (diff) | |
download | wireshark-6ceb84b10bbfbb9743be074016b7de8cbab9bbcb.tar.gz |
Make dissectors register for their MAC Management Message Type and use dissector_try_uint to do any dissection. Many "outside" (third-party) message types appear to exist.
Have the makefiles do all the work setting up proto_register_<dissector> and proto_reg_handoff_<dissector>, rather than sprinkled throughout the dissectors with extern declarations.
More is coming to make more functions static (because of current makefile fixes) and cleanup MAC Management dissectors to remove unnecessary/duplicative code, but I wanted to get the build issues squared away.
svn path=/trunk/; revision=52167
Diffstat (limited to 'plugins/wimax/msg_pkm.c')
-rw-r--r-- | plugins/wimax/msg_pkm.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/plugins/wimax/msg_pkm.c b/plugins/wimax/msg_pkm.c index ce93071790..93398429ff 100644 --- a/plugins/wimax/msg_pkm.c +++ b/plugins/wimax/msg_pkm.c @@ -88,17 +88,10 @@ static gint hf_pkm_msg_pkm_id = -1; void dissect_mac_mgmt_msg_pkm_req_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint offset = 0; - guint tvb_len, payload_type, length; + guint tvb_len, length; proto_item *pkm_item = NULL; proto_tree *pkm_tree = NULL; - /* Ensure the right payload type */ - payload_type = tvb_get_guint8(tvb, offset); - if(payload_type != MAC_MGMT_MSG_PKM_REQ) - { - return; - } - { /* we are being asked for details */ /* Get the tvb reported length */ tvb_len = tvb_reported_length(tvb); @@ -129,17 +122,10 @@ void dissect_mac_mgmt_msg_pkm_req_decoder(tvbuff_t *tvb, packet_info *pinfo, pro void dissect_mac_mgmt_msg_pkm_rsp_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint offset = 0; - guint tvb_len, payload_type, length; + guint tvb_len, length; proto_item *pkm_item = NULL; proto_tree *pkm_tree = NULL; - /* Ensure the right payload type */ - payload_type = tvb_get_guint8(tvb, offset); - if(payload_type != MAC_MGMT_MSG_PKM_RSP) - { - return; - } - { /* we are being asked for details */ /* Get the tvb reported length */ tvb_len = tvb_reported_length(tvb); @@ -206,3 +192,14 @@ void proto_register_mac_mgmt_msg_pkm(void) proto_register_field_array(proto_mac_mgmt_msg_pkm_decoder, hf_pkm, array_length(hf_pkm)); proto_register_subtree_array(ett_pkm, array_length(ett_pkm)); } + +void proto_reg_handoff_mac_mgmt_msg_pkm(void) +{ + dissector_handle_t mac_mgmt_msg_pkm_req_handle; + dissector_handle_t mac_mgmt_msg_pkm_rsp_handle; + + mac_mgmt_msg_pkm_req_handle = create_dissector_handle(dissect_mac_mgmt_msg_pkm_req_decoder, proto_mac_mgmt_msg_pkm_decoder); + dissector_add_uint( "wmx.mgmtmsg", MAC_MGMT_MSG_PKM_REQ, mac_mgmt_msg_pkm_req_handle ); + mac_mgmt_msg_pkm_rsp_handle = create_dissector_handle(dissect_mac_mgmt_msg_pkm_rsp_decoder, proto_mac_mgmt_msg_pkm_decoder); + dissector_add_uint( "wmx.mgmtmsg", MAC_MGMT_MSG_PKM_RSP, mac_mgmt_msg_pkm_rsp_handle ); +}
\ No newline at end of file |