diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-01-21 22:51:46 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-01-21 22:51:46 +0000 |
commit | d9718a693d2ee60f6e9b018313efb4905b5a2509 (patch) | |
tree | a5ba5f29141aafb5d72821e978779663274ab03c /packet-vlan.c | |
parent | 412318920cc91433503bea190063df715aedeb84 (diff) | |
download | wireshark-d9718a693d2ee60f6e9b018313efb4905b5a2509.tar.gz wireshark-d9718a693d2ee60f6e9b018313efb4905b5a2509.tar.bz2 wireshark-d9718a693d2ee60f6e9b018313efb4905b5a2509.zip |
Remove some more "CHECK_DISPLAY_AS_DATA()" calls and code to set
"pinfo->current_proto", in dissectors always called through dissector
tables and handles.
Make the IEEE 802.11 dissector static, as it's not called externally.
Clear the Info column in the Linux cooked capture and 802.1q VLAN
dissectors, before extracting anything from the packet, so that if an
exception is thrown, the Info column doesn't reflect the previous
protocol.
Don't extract the encapsulated protocol in the VLAN dissector until you
use it, so that if the frame contains the VLAN ID but not the
encapsulated protocol, we at least put the VLAN ID into the protocol
tree.
svn path=/trunk/; revision=2927
Diffstat (limited to 'packet-vlan.c')
-rw-r--r-- | packet-vlan.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/packet-vlan.c b/packet-vlan.c index 595ec8f8e9..a85c1070db 100644 --- a/packet-vlan.c +++ b/packet-vlan.c @@ -1,7 +1,7 @@ /* packet-vlan.c * Routines for VLAN 802.1Q ethernet header disassembly * - * $Id: packet-vlan.c,v 1.30 2001/01/18 07:44:39 guy Exp $ + * $Id: packet-vlan.c,v 1.31 2001/01/21 22:51:46 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -83,15 +83,12 @@ dissect_vlan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvbuff_t *volatile trailer_tvb; proto_tree *volatile vlan_tree; - CHECK_DISPLAY_AS_DATA(proto_vlan, tvb, pinfo, tree); - - pinfo->current_proto = "VLAN"; - if (check_col(pinfo->fd, COL_PROTOCOL)) col_set_str(pinfo->fd, COL_PROTOCOL, "VLAN"); + if (check_col(pinfo->fd, COL_INFO)) + col_clear(pinfo->fd, COL_INFO); tci = tvb_get_ntohs( tvb, 0 ); - encap_proto = tvb_get_ntohs( tvb, 2 ); if (check_col(pinfo->fd, COL_INFO)) { col_add_fstr(pinfo->fd, COL_INFO, "PRI: %d CFI: %d ID: %d", @@ -109,6 +106,7 @@ dissect_vlan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_uint(vlan_tree, hf_vlan_id, tvb, 0, 2, tci); } + encap_proto = tvb_get_ntohs( tvb, 2 ); if ( encap_proto <= IEEE_802_3_MAX_LEN) { /* Give the next dissector only 'encap_proto' number of bytes */ proto_tree_add_uint(vlan_tree, hf_vlan_len, tvb, 2, 2, encap_proto); |