diff options
author | Guy Harris <guy@alum.mit.edu> | 2016-01-17 20:49:25 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2016-01-18 04:50:12 +0000 |
commit | 609ea4baa62a523434cdd8ff350d56d135d588ae (patch) | |
tree | 9a40fb15ddfe3a055023efa63759767123cd49b3 /epan/dissectors/packet-nettl.c | |
parent | 8ec153f93816a302a325e40924f4e13383ad8eaf (diff) |
Directly call the FDDI and "raw IP" dissectors from the nettl dissector.
Just get handles for the dissectors, don't go through the wtap_encap
dissector table.
Change-Id: I459249b98741cc069495c84ad4c47c0aa6768096
Reviewed-on: https://code.wireshark.org/review/13383
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-nettl.c')
-rw-r--r-- | epan/dissectors/packet-nettl.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/epan/dissectors/packet-nettl.c b/epan/dissectors/packet-nettl.c index 677bcfbea9..985b43eeb4 100644 --- a/epan/dissectors/packet-nettl.c +++ b/epan/dissectors/packet-nettl.c @@ -46,11 +46,12 @@ static int hf_nettl_uid = -1; static dissector_handle_t eth_withoutfcs_handle; static dissector_handle_t tr_handle; +static dissector_handle_t fddi_bitswapped_handle; static dissector_handle_t lapb_handle; static dissector_handle_t x25_handle; static dissector_handle_t sctp_handle; +static dissector_handle_t raw_ip_handle; static dissector_handle_t data_handle; -static dissector_table_t wtap_dissector_table; static dissector_table_t ip_proto_dissector_table; static dissector_table_t tcp_subdissector_table; @@ -237,9 +238,7 @@ dissect_nettl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U call_dissector(tr_handle, tvb, pinfo, tree); break; case WTAP_ENCAP_NETTL_FDDI: - if (!dissector_try_uint(wtap_dissector_table, - WTAP_ENCAP_FDDI_BITSWAPPED, tvb, pinfo, tree)) - call_dissector(data_handle, tvb, pinfo, tree); + call_dissector(fddi_bitswapped_handle, tvb, pinfo, tree); break; case WTAP_ENCAP_NETTL_RAW_IP: if ( (pinfo->pseudo_header->nettl.kind & NETTL_HDR_PDU_MASK) == 0 ) @@ -247,9 +246,8 @@ dissect_nettl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U call_dissector(data_handle, tvb, pinfo, tree); else if (pinfo->pseudo_header->nettl.subsys == NETTL_SUBSYS_NS_LS_SCTP ) call_dissector(sctp_handle, tvb, pinfo, tree); - else if (!dissector_try_uint(wtap_dissector_table, - WTAP_ENCAP_RAW_IP, tvb, pinfo, tree)) - call_dissector(data_handle, tvb, pinfo, tree); + else + call_dissector(raw_ip_handle, tvb, pinfo, tree); break; case WTAP_ENCAP_NETTL_RAW_ICMP: if (!dissector_try_uint(ip_proto_dissector_table, @@ -342,15 +340,16 @@ proto_reg_handoff_nettl(void) dissector_handle_t nettl_handle; /* - * Get handles for the Ethernet, Token Ring, FDDI, and RAW dissectors. + * Get handles for various dissectors and dissector tables. */ eth_withoutfcs_handle = find_dissector("eth_withoutfcs"); tr_handle = find_dissector("tr"); + fddi_bitswapped_handle = find_dissector("fddi_bitswapped"); lapb_handle = find_dissector("lapb"); x25_handle = find_dissector("x.25"); sctp_handle = find_dissector("sctp"); + raw_ip_handle = find_dissector("raw_ip"); data_handle = find_dissector("data"); - wtap_dissector_table = find_dissector_table("wtap_encap"); ip_proto_dissector_table = find_dissector_table("ip.proto"); tcp_subdissector_table = find_dissector_table("tcp.port"); |