summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/libwellenreiter/source/sniff.hh
authormjm <mjm>2002-11-27 22:34:42 (UTC)
committer mjm <mjm>2002-11-27 22:34:42 (UTC)
commit6df3dfdf18115f5a3ce8477749ecef77a66260c0 (patch) (side-by-side diff)
treedb39360f01328ce25d357ea76d781c1d4097a402 /noncore/net/wellenreiter/libwellenreiter/source/sniff.hh
parentb4d01b67746887223de78e950689c385a5960ad9 (diff)
downloadopie-6df3dfdf18115f5a3ce8477749ecef77a66260c0.zip
opie-6df3dfdf18115f5a3ce8477749ecef77a66260c0.tar.gz
opie-6df3dfdf18115f5a3ce8477749ecef77a66260c0.tar.bz2
added cardmode and sniffer
Diffstat (limited to 'noncore/net/wellenreiter/libwellenreiter/source/sniff.hh') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/sniff.hh64
1 files changed, 64 insertions, 0 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/sniff.hh b/noncore/net/wellenreiter/libwellenreiter/source/sniff.hh
new file mode 100644
index 0000000..fa8519b
--- a/dev/null
+++ b/noncore/net/wellenreiter/libwellenreiter/source/sniff.hh
@@ -0,0 +1,64 @@
+/* $Id$ */
+
+#ifndef SNIFF_HH
+#define SNIFF_HH
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <pcap.h>
+#include <errno.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <net/bpf.h>
+
+#define NONBROADCASTING "non-broadcasting"
+
+/* holds all the interresting data */
+struct packetinfo
+{
+ int isvalid;
+ int pktlen;
+ int fctype;
+ int fcsubtype;
+ int fc_wep;
+ int cap_WEP;
+ int cap_IBSS;
+ int cap_ESS;
+ int channel;
+ char bssid[sizeof("00:00:00:00:00:00")];
+ char desthwaddr[sizeof("00:00:00:00:00:00")];
+ char sndhwaddr[sizeof("00:00:00:00:00:00")];
+ char *ssid;
+ int ssid_len;
+};
+
+void process_packets(const struct pcap_pkthdr* pkthdr,const u_char* packet);
+int decode_80211b_hdr(const u_char *p,struct packetinfo *ppinfo);
+void etheraddr_string(register const u_char *ep,char * text);
+int handle_beacon(u_int16_t fc, const u_char *p,struct packetinfo *ppinfo);
+
+int GetHeaderLength(u_int16_t fc);
+
+/*
+ * True if "l" bytes of "var" were captured.
+ *
+ * The "snapend - (l) <= snapend" checks to make sure "l" isn't so large
+ * that "snapend - (l)" underflows.
+ *
+ * The check is for <= rather than < because "l" might be 0.
+ */
+#define TTEST2(var, l) (snapend - (l) <= snapend && \
+ (const u_char *)&(var) <= snapend - (l))
+
+/* True if "var" was captured */
+#define TTEST(var) TTEST2(var, sizeof(var))
+
+/* Bail if "l" bytes of "var" were not captured */
+#define TCHECK2(var, l) if (!TTEST2(var, l)) goto trunc
+
+/* Bail if "var" was not captured */
+#define TCHECK(var) TCHECK2(var, sizeof(var))
+
+#endif /* SNIFF_HH */