Fix for bug #1278:
authorsfisher <sfisher@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 29 Dec 2006 22:22:54 +0000 (22:22 +0000)
committersfisher <sfisher@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 29 Dec 2006 22:22:54 +0000 (22:22 +0000)
"When analysing a trace with 802.11 packages (made by airpcap) and selecting
Statistics->Conversation List->WLAN all wlan conversations are listed. When
after this selecting Apply as filter->Selected->A<->B a display filter is
created as

eth.addr==<A>  && eth.addr==<B>

when if should be

wlan.addr==<A>  && wlan.addr==<B>"

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@20234 f5534014-38df-0310-8fa8-9805f1628bb7

gtk/conversations_table.c
gtk/conversations_wlan.c
gtk/hostlist_table.c
gtk/hostlist_wlan.c
gtk/sat.h

index d07125d8646fc6c77a18cf0f443eb5f6ec46a9bb..e7bf8110b0138e02d686f9a55e055219f00fbe22 100644 (file)
@@ -108,8 +108,8 @@ ct_port_to_str(int port_type, guint32 port)
    return a string for the filter name
 
    some addresses, like AT_ETHER may actually be any of multiple types
-   of protocols,   either ethernet, tokenring, fddi etc so we must be more
-   specific there  thats why we need specific_addr_type
+   of protocols,   either ethernet, tokenring, fddi, wlan etc so we must be
+   more specific there  thats why we need specific_addr_type
 */
 static const char *
 ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int name_type)
@@ -121,6 +121,8 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
                        switch(specific_addr_type){
                        case SAT_ETHER:
                                return "eth.src";
+                       case SAT_WLAN:
+                               return "wlan.sa";
                        case SAT_FDDI:
                                return "fddi.src";
                        case SAT_TOKENRING:
@@ -155,6 +157,8 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
                        switch(specific_addr_type){
                        case SAT_ETHER:
                                return "eth.dst";
+                       case SAT_WLAN:
+                               return "wlan.da";
                        case SAT_FDDI:
                                return "fddi.dst";
                        case SAT_TOKENRING:
@@ -189,6 +193,8 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
                        switch(specific_addr_type){
                        case SAT_ETHER:
                                return "eth.addr";
+                       case SAT_WLAN:
+                               return "wlan.addr";
                        case SAT_FDDI:
                                return "fddi.addr";
                        case SAT_TOKENRING:
index 1f94aa7bb01a67b8d9d3843a4c2e3ac1819afc13..e666b9d321a49f022ac70ada3ec1064ffaf4b9e1 100644 (file)
@@ -47,7 +47,7 @@ wlan_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_,
 {
        const wlan_hdr *whdr=vip;
 
-       add_conversation_table_data((conversations_table *)pct, &whdr->src, &whdr->dst, 0, 0, 1, pinfo->fd->pkt_len, SAT_ETHER, PT_NONE);
+       add_conversation_table_data((conversations_table *)pct, &whdr->src, &whdr->dst, 0, 0, 1, pinfo->fd->pkt_len, SAT_WLAN, PT_NONE);
 
        return 1;
 }
index d3cb51f18873624d5509bb2a846f4d0ed30d888b..a4446fd29ee1b489b7ae077e6a5f3a8102de28ff 100644 (file)
@@ -104,6 +104,8 @@ hostlist_get_filter_name(address *addr, int specific_addr_type, int port_type, i
                        switch(specific_addr_type){
                        case SAT_ETHER:
                                return "eth.addr";
+                       case SAT_WLAN:
+                               return "wlan.addr";
                        case SAT_FDDI:
                                return "fddi.addr";
                        case SAT_TOKENRING:
index bfe7547fd65f0086737862ed95363dc25cb2afc4..c8dc5650ee5ea8d76494a315fd0ed77952340a88 100644 (file)
@@ -51,8 +51,8 @@ wlan_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, con
         /* Take two "add" passes per packet, adding for each direction, ensures that all
         packets are counted properly (even if address is sending to itself)
         XXX - this could probably be done more efficiently inside hostlist_table */
-        add_hostlist_table_data(hosts, &whdr->src, 0, TRUE, 1, pinfo->fd->pkt_len, SAT_ETHER, PT_NONE);
-        add_hostlist_table_data(hosts, &whdr->dst, 0, FALSE, 1, pinfo->fd->pkt_len, SAT_ETHER, PT_NONE);
+        add_hostlist_table_data(hosts, &whdr->src, 0, TRUE, 1, pinfo->fd->pkt_len, SAT_WLAN, PT_NONE);
+        add_hostlist_table_data(hosts, &whdr->dst, 0, FALSE, 1, pinfo->fd->pkt_len, SAT_WLAN, PT_NONE);
 
         return 1;
 }
index 8fbba9a3b3df8d1091c7f9fb14fa5504518d01ad..c0cb1a08bc67672a531eae511a79f20ffadf266a 100644 (file)
--- a/gtk/sat.h
+++ b/gtk/sat.h
@@ -34,6 +34,7 @@
 typedef enum {
     SAT_NONE,       /**< no address type */
     SAT_ETHER,      /**< MAC : Ethernet */
+    SAT_WLAN,       /**< MAC : Wireless LAN */
     SAT_FDDI,       /**< MAC : FDDI */
     SAT_TOKENRING,  /**< MAC : Token Ring */
     SAT_JXTA        /**< URI : JXTA */