commit often and soon
[my-code/hdw-sniff.git] / parse.c
diff --git a/parse.c b/parse.c
index 0da5e6f..494ac06 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -102,6 +102,7 @@ void parse_package(unsigned char *ptr,const struct pcap_pkthdr *pcap_header,cons
       beacon_fb=(t_beacon_fb *)(package+sizeof(t_frame3_hdr));
       // check sta
       memcpy(new_sta.addr,f3hdr->addr2,ADDR_LEN);
+      memcpy(new_sta.bssid,f3hdr->addr3,ADDR_LEN);
       ret=list_search_data(&(info->sniffed_sta),&new_sta,ADDR_LEN);
       if((ret==L_EMPTY_LIST)|(ret==L_NO_SUCH_ELEMENT)) {
         list_add_element(&(info->sniffed_sta),&new_sta,sizeof(t_sta));
@@ -185,7 +186,7 @@ void parse_package(unsigned char *ptr,const struct pcap_pkthdr *pcap_header,cons
       else if(info->mode&MODE_PRISM)
         sta->sq=(prismhdr->signal.data)-(prismhdr->noise.data);
       if(new) {
-        strcpy(sc,"flite 'new station. data package'");
+        strcpy(sc,"flite 'station found by data package'");
         system(sc);
       }
       if(foo) {
@@ -193,7 +194,19 @@ void parse_package(unsigned char *ptr,const struct pcap_pkthdr *pcap_header,cons
         strcpy(sc,"flite 'wds package'");
         system(sc);
       }
-      memcpy(sta->snap,data,6);
+      memcpy(sta->snap,data,10);
+      if((data[0]==0xaa)&(data[1]==0xaa)&(data[2]==0x03)&
+         (data[3]==0x00)&(data[4]==0x00)&(data[5]==0x00)) {
+        sta->wep=0;
+        strcpy(sc,"flite 'not crypted'");
+        system(sc);
+      }
+      else {
+        sta->wep=WEP;
+        strcpy(sc,"flite ' crypted'");
+        system(sc);
+      }
+         
     //}
 
     display_console(info,"last: got data frame");