diff options
Diffstat (limited to 'plugins/wimax/msg_res_cmd.c')
-rw-r--r-- | plugins/wimax/msg_res_cmd.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/plugins/wimax/msg_res_cmd.c b/plugins/wimax/msg_res_cmd.c index 7cb8da3a09..5953669b6c 100644 --- a/plugins/wimax/msg_res_cmd.c +++ b/plugins/wimax/msg_res_cmd.c @@ -87,28 +87,25 @@ static void dissect_mac_mgmt_msg_res_cmd_decoder(tvbuff_t *tvb, packet_info *pin #ifdef DEBUG /* for debug only */ proto_tree_add_protocol_format(res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, (tlv_len + tlv_value_offset), "RES-CMD Type: %u (%u bytes, offset=%u, tlv_len=%u, tvb_len=%u)", tlv_type, (tlv_len + tlv_value_offset), offset, tlv_len, tvb_len); #endif - /* update the offset for the TLV value */ - offset += tlv_value_offset; /* process RES-CMD TLV Encoded information */ switch (tlv_type) { case HMAC_TUPLE: /* Table 348d */ /* decode and display the HMAC Tuple */ - tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "HMAC Tuple (%u byte(s))", tlv_len); - wimax_hmac_tuple_decoder(tlv_tree, tvb, offset, tlv_len); + tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "HMAC Tuple"); + wimax_hmac_tuple_decoder(tlv_tree, tvb, offset+tlv_value_offset, tlv_len); break; case CMAC_TUPLE: /* Table 348b */ /* decode and display the CMAC Tuple */ - tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "CMAC Tuple (%u byte(s))", tlv_len); - wimax_cmac_tuple_decoder(tlv_tree, tvb, offset, tlv_len); + tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "CMAC Tuple"); + wimax_cmac_tuple_decoder(tlv_tree, tvb, offset+tlv_value_offset, tlv_len); break; default: /* display the unknown tlv in hex */ - tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, hf_res_cmd_unknown_type, tvb, offset, tlv_len, FALSE); - proto_tree_add_item(tlv_tree, hf_res_cmd_unknown_type, tvb, offset, tlv_len, ENC_NA); + add_tlv_subtree(&tlv_info, res_cmd_tree, hf_res_cmd_unknown_type, tvb, offset, ENC_NA); break; } - offset += tlv_len; + offset += (tlv_len+tlv_value_offset); } /* end of TLV process while loop */ } } |