aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2008-04-30 09:15:50 +0000
committerJaap Keuter <jaap.keuter@xs4all.nl>2008-04-30 09:15:50 +0000
commit6e9d862cd8bc72f991eade73dad9fb6bc42fe85e (patch)
tree9f585db37eff7efaa77e37b7f78051ac8565c9f4 /plugins
parent7a0981e51365570b68b058b2db57f2579dae534e (diff)
From cfreeer:
There is no EAP decoder to decode EAP messages packed in Wimax PKM messages. I called the EAP decoder found in the Wireshark. svn path=/trunk/; revision=25203
Diffstat (limited to 'plugins')
-rw-r--r--plugins/wimax/wimax_utils.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/wimax/wimax_utils.c b/plugins/wimax/wimax_utils.c
index e65a07a215..5626034e4e 100644
--- a/plugins/wimax/wimax_utils.c
+++ b/plugins/wimax/wimax_utils.c
@@ -77,6 +77,8 @@ static gint ett_vendor_id_encoding_decoder = -1;
static gint ett_ul_service_flow_decoder = -1;
static gint ett_dl_service_flow_decoder = -1;
+static dissector_handle_t eap_handle = NULL;
+
/* The following two variables save the Scheduling Service type for
the Grant Management subheader dissector and track whether or not
one has been seen.
@@ -1689,6 +1691,8 @@ void proto_register_wimax_utility_decoders(void)
proto_register_field_array(proto_wimax_utility_decoders, hf_snp, array_length(hf_snp));
proto_register_field_array(proto_wimax_utility_decoders, hf_pkm, array_length(hf_pkm));
proto_register_field_array(proto_wimax_utility_decoders, hf_common_tlv, array_length(hf_common_tlv));
+
+ eap_handle = find_dissector("eap");
}
}
@@ -2945,7 +2949,7 @@ void wimax_pkm_tlv_encoded_attributes_decoder(tvbuff_t *tvb, packet_info *pinfo,
break;
case PKM_ATTR_PKM_EAP_PAYLOAD:
tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_eap_payload, tvb, offset, tlv_len, FALSE);
- proto_tree_add_item(tlv_tree, hf_pkm_attr_eap_payload, tvb, offset, tlv_len, FALSE);
+ call_dissector(eap_handle, tvb_new_subset(tvb, offset, tlv_len, tlv_len), pinfo, tlv_tree);
break;
case PKM_ATTR_PKM_NONCE:
tlv_tree = add_tlv_subtree(&tlv_info, ett_pkm_tlv_encoded_attributes_decoder, tree, hf_pkm_attr_nonce, tvb, offset, tlv_len, FALSE);