diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-06-10 07:40:39 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-06-10 07:40:39 +0000 |
commit | 78f6f176d41dc0af73ca22d7f94d726309cc55b2 (patch) | |
tree | bab5cefad0dcb5f5303dfb5111b562ed15508347 /packet-ieee80211.c | |
parent | 4224945f5262434dfc9bca126c716faf736b393e (diff) | |
download | wireshark-78f6f176d41dc0af73ca22d7f94d726309cc55b2.tar.gz wireshark-78f6f176d41dc0af73ca22d7f94d726309cc55b2.tar.bz2 wireshark-78f6f176d41dc0af73ca22d7f94d726309cc55b2.zip |
Clean up the handling of MAC addresses - set the addresses in the
standard fashion, for data and managment packets, and set the columns
correctly for other packets (as we currently put address types in the
address columns; if we don't do so, we could just set the addresses in
the standard fashion for those packets as well).
svn path=/trunk/; revision=3536
Diffstat (limited to 'packet-ieee80211.c')
-rw-r--r-- | packet-ieee80211.c | 103 |
1 files changed, 41 insertions, 62 deletions
diff --git a/packet-ieee80211.c b/packet-ieee80211.c index 91424f2c49..6471bf908c 100644 --- a/packet-ieee80211.c +++ b/packet-ieee80211.c @@ -3,7 +3,7 @@ * Copyright 2000, Axis Communications AB * Inquiries/bugreports should be sent to Johan.Jorgensen@axis.com * - * $Id: packet-ieee80211.c,v 1.20 2001/06/08 06:01:06 guy Exp $ + * $Id: packet-ieee80211.c,v 1.21 2001/06/10 07:40:39 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -64,6 +64,7 @@ #include "bitswap.h" #include "proto.h" #include "packet.h" +#include "resolv.h" #include "packet-llc.h" #include "packet-ieee80211.h" #include "etypes.h" @@ -745,7 +746,27 @@ add_tagged_field (proto_tree * tree, tvbuff_t * tvb, int offset) return tag_len + 2; } +static void +set_src_addr_cols(packet_info *pinfo, const guint8 *addr, char *type) +{ + if (check_col(pinfo->fd, COL_RES_DL_SRC)) + col_add_fstr(pinfo->fd, COL_RES_DL_SRC, "%s (%s)", + get_ether_name(addr), type); + if (check_col(pinfo->fd, COL_UNRES_DL_SRC)) + col_add_fstr(pinfo->fd, COL_UNRES_DL_SRC, "%s (%s)", + ether_to_str(addr), type); +} +static void +set_dst_addr_cols(packet_info *pinfo, const guint8 *addr, char *type) +{ + if (check_col(pinfo->fd, COL_RES_DL_DST)) + col_add_fstr(pinfo->fd, COL_RES_DL_DST, "%s (%s)", + get_ether_name(addr), type); + if (check_col(pinfo->fd, COL_UNRES_DL_DST)) + col_add_fstr(pinfo->fd, COL_UNRES_DL_DST, "%s (%s)", + ether_to_str(addr), type); +} /* ************************************************************************* */ /* Dissect 802.11 frame */ @@ -846,14 +867,10 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) src = tvb_get_ptr (tvb, 10, 6); dst = tvb_get_ptr (tvb, 4, 6); - - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, "%X:%X:%X:%X:%X:%X", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, "%X:%X:%X:%X:%X:%X", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src); + SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src); + SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst); + SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst); if (tree) { @@ -916,15 +933,10 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) break; } - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src); + SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src); + SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst); + SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst); /* Now if we have a tree we start adding stuff */ if (tree) @@ -1275,16 +1287,8 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) src = tvb_get_ptr (tvb, 10, 6); dst = tvb_get_ptr (tvb, 4, 6); - - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (BSSID)", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (TA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_src_addr_cols(pinfo, src, "BSSID"); + set_dst_addr_cols(pinfo, dst, "BSSID"); if (tree) { @@ -1304,16 +1308,8 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) src = tvb_get_ptr (tvb, 10, 6); dst = tvb_get_ptr (tvb, 4, 6); - - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (TA)", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (RA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_src_addr_cols(pinfo, src, "TA"); + set_dst_addr_cols(pinfo, dst, "RA"); if (tree) { @@ -1333,10 +1329,7 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) dst = tvb_get_ptr (tvb, 4, 6); - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (RA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_dst_addr_cols(pinfo, dst, "RA"); if (tree) { @@ -1353,10 +1346,7 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) dst = tvb_get_ptr (tvb, 4, 6); - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X (RA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_dst_addr_cols(pinfo, dst, "RA"); if (tree) proto_tree_add_ether (hdr_tree, hf_addr_ra, tvb, 4, 6, @@ -1371,14 +1361,8 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) src = tvb_get_ptr (tvb, 10, 6); dst = tvb_get_ptr (tvb, 4, 6); - - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, "%X:%X:%X:%X:%X:%X (BSSID)", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, "%X:%X:%X:%X:%X:%X (RA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_src_addr_cols(pinfo, src, "BSSID"); + set_dst_addr_cols(pinfo, dst, "RA"); if (tree) { @@ -1397,13 +1381,8 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) src = tvb_get_ptr (tvb, 10, 6); dst = tvb_get_ptr (tvb, 4, 6); - if (check_col (pinfo->fd, COL_DEF_SRC)) - col_add_fstr (pinfo->fd, COL_DEF_SRC, "%X:%X:%X:%X:%X:%X (BSSID)", - src[0], src[1], src[2], src[3], src[4], src[5]); - - if (check_col (pinfo->fd, COL_DEF_DST)) - col_add_fstr (pinfo->fd, COL_DEF_DST, "%X:%X:%X:%X:%X:%X (RA)", - dst[0], dst[1], dst[2], dst[3], dst[4], dst[5]); + set_src_addr_cols(pinfo, src, "BSSID"); + set_dst_addr_cols(pinfo, dst, "RA"); if (tree) { @@ -1517,7 +1496,7 @@ dissect_ieee80211 (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) case DATA_CF_ACK_NOD: - COL_SHOW_INFO_CONST (pinfo->fd, "Data + Acknowledgement(No data)"); + COL_SHOW_INFO_CONST (pinfo->fd, "Data + Acknowledgement (No data)"); break; |