small fixes in documentation + initial checkin of wep - crack tool
[my-code/hdw-sniff.git] / parse.h
diff --git a/parse.h b/parse.h
index 384e65c..9278dc3 100644 (file)
--- a/parse.h
+++ b/parse.h
@@ -70,21 +70,21 @@ typedef struct s_prism_hdr {
   t_prism_val frame_len;
 } __attribute__ ((packed)) t_prism_hdr;
 
-#define FCTL_VER(X) ((X&0x0003))
-#define FCTL_TYPE(X) ((X&0x000c)>>2)
-#define FCTL_STYPE(X) ((X&0x00f0)>>4)
-#define FCTL_TODS(X) ((X&0x0100)>>8)
-#define FCTL_FROMDS(X) ((X&0x0200)>>9)
-#define FCTL_MOREFRAG(X) ((X&0x0400)>>10)
-#define FCTL_RETRY(X) ((X&0x0800)>>11)
-#define FCTL_PWRMGT(X) ((X&1000)>>12)
-#define FCTL_MOREDATA(X) ((X&0x2000)>>13)
-#define FCTL_WEP(X) ((X&0x4000)>>14)
-#define FCTL_ORDER(X) ((X&0x800)>>15)
+#define FCTL_VER(X) (((*(u16 *)&X)&0x0003))
+#define FCTL_TYPE(X) (((*(u16 *)&X)&0x000c)>>2)
+#define FCTL_STYPE(X) (((*(u16 *)&X)&0x00f0)>>4)
+#define FCTL_TODS(X) (((*(u16 *)&X)&0x0100)>>8)
+#define FCTL_FROMDS(X) (((*(u16 *)&X)&0x0200)>>9)
+#define FCTL_MOREFRAG(X) (((*(u16 *)&X)&0x0400)>>10)
+#define FCTL_RETRY(X) (((*(u16 *)&X)&0x0800)>>11)
+#define FCTL_PWRMGT(X) (((*(u16 *)&X)&1000)>>12)
+#define FCTL_MOREDATA(X) (((*(u16 *)&X)&0x2000)>>13)
+#define FCTL_WEP(X) (((*(u16 *)&X)&0x4000)>>14)
+#define FCTL_ORDER(X) (((*(u16 *)&X)&0x800)>>15)
 
 #define FCTL_TYPE_MGMT 0
-#define FCTL_TYPE_CTRL 2
-#define FCTL_TYPE_DATA 1
+#define FCTL_TYPE_CTRL 1
+#define FCTL_TYPE_DATA 2
 
 #define FCTL_STYPE_ASSOC_REQ 0x0
 #define FCTL_STYPE_ASSOC_RESP 0x1
@@ -142,12 +142,15 @@ typedef struct s_sta {
   char ssid[MAX_SSID_LEN];
   u8 ap;
   u8 wep;
+  u8 wds;
   int count_mgmt;
   int count_ctrl;
   int count_data;
   char active;
   char key[WEP_MAX_DIGITS];
   int sq;
+  u8 snap[10];
+  u8 bssid[ADDR_LEN];
 } t_sta;
   
 /* function prototypes */