diff -uNr kismet-devel/README kismet-madwifi/README
--- kismet-devel/README 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/README 2003-10-24 13:38:15.000000000 -0600
@@ -23,6 +23,7 @@
8. drone
9. airport (viha)
10. acx100
+ 11. atheros
7. GPS Support
8. Compiling
9. Configuration
@@ -338,6 +339,22 @@
Capture interface: wlanX
Notes: Drivers available from
http://acx100.sourceforge.net.
+ 11. ATHEROS
+ Cards: 802.11 devices using Atheros 5000 series chipsets
+ Notes: Drivers available from http://madwifi.sourceforge.net.
+ Some Atheros chipsets are also supported by vt_ar5k above.
+ Dual-band multi-mode Atheros cards can hop channels across
+ both bands when configured as madwifi_ab or madwifi_ag.
+ o 'madwifi_a': 802.11a mode
+ Capture interface: athX
+ o 'madwifi_b': 802.11b mode
+ Capture interface: athX
+ o 'madwifi_g': 802.11g mode
+ Capture interface: athX
+ o 'madwifi_ab': 802.11a/b multi-mode
+ Capture interface: athX
+ o 'madwifi_ag': 802.11a/g multi-mode
+ Capture interface: athX
7. GPS SUPPORT
GPS support is provided via the GPSD daemon, available at
http://russnelson.com/gpsd/. GPSD is also included with the
diff -uNr kismet-devel/conf/kismet.conf.in kismet-madwifi/conf/kismet.conf.in
--- kismet-devel/conf/kismet.conf.in 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/conf/kismet.conf.in 2003-10-24 12:33:15.000000000 -0600
@@ -30,6 +30,11 @@
# wtapfile - Saved file of packets readable by libwiretap
# pcapfile - Saved file of packets readable by libpcap
# ar5k - ar5k 802.11a using the vt_ar5k drivers
+# madwifi_a - atheros 802.11a mode using the madwifi drivers
+# madwifi_b - atheros 802.11b mode using the madwifi drivers
+# madwifi_g - atheros 802.11g mode using the madwifi drivers
+# madwifi_ab - atheros 802.11a/b multi-mode using the madwifi drivers
+# madwifi_ag - atheros 802.11a/g multi-mode using the madwifi drivers
# drone - Kismet remote drone
# viha - Mac OSX Airport drivers
# Capture interface - Specifies the network interface Kismet will watch for
@@ -89,6 +94,8 @@
# Most won't support all of these, so you'll have to tweak it to what your
# system supports.
# 80211achannels=36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,184,188,192,196,200,204,208,212,216
+# Dual-band multi-mode cards hop across both bands according to:
+80211abchannels=1,6,11,2,7,3,8,4,9,5,10,36,40,44,48,52,56,60,64
# Fine-tuning channel hopping control:
# The sourcechannels option can be used to set the channel hopping for
diff -uNr kismet-devel/conf/kismet_drone.conf kismet-madwifi/conf/kismet_drone.conf
--- kismet-devel/conf/kismet_drone.conf 2003-06-04 18:36:38.000000000 -0600
+++ kismet-madwifi/conf/kismet_drone.conf 2003-10-24 12:57:57.000000000 -0600
@@ -36,6 +36,11 @@
# wsp100 - WSP100 embedded remote sensor.
# wtapfile - Saved file of packets readable by libwiretap
# ar5k - ar5k 802.11a using the vt_ar5k drivers
+# madwifi_a - atheros 802.11a mode using the madwifi drivers
+# madwifi_b - atheros 802.11b mode using the madwifi drivers
+# madwifi_g - atheros 802.11g mode using the madwifi drivers
+# madwifi_ab - atheros 802.11a/b multi-mode using the madwifi drivers
+# madwifi_ag - atheros 802.11a/g multi-mode using the madwifi drivers
# Capture interface - Specifies the network interface Kismet will watch for
# packets to come in on. Typically "ethX" or "wlanX". For the WSP100 capture
# engine, the WSP100 device sends packets via a UDP stream, so the capture
@@ -78,6 +83,9 @@
# list:
# 80211bchannels=1,7,13,2,8,3,14,9,4,10,5,11,6,12
80211achannels=36,40,44,48,52,56,60,64
+# Dual-band multi-mode cards hop across both bands according to:
+80211abchannels=1,6,11,2,7,3,8,4,9,5,10,36,40,44,48,52,56,60,64
+
# Fine-tuning channel hopping control:
# The sourcechannels option can be used to set the channel hopping for
diff -uNr kismet-devel/conf/zaurus_kismet.conf kismet-madwifi/conf/zaurus_kismet.conf
--- kismet-devel/conf/zaurus_kismet.conf 2003-01-26 19:14:04.000000000 -0700
+++ kismet-madwifi/conf/zaurus_kismet.conf 2003-10-24 13:39:20.000000000 -0600
@@ -46,6 +46,11 @@
# prism2_legacy - Prism2 using wlan-ng drivers without pcap support (0.1.9)
# prism2_bsd - Prism2 on *BSD
# orinoco - Orinoco cards using Snax's patched driers
+# madwifi_a - atheros 802.11a mode using the madwifi drivers
+# madwifi_b - atheros 802.11b mode using the madwifi drivers
+# madwifi_g - atheros 802.11g mode using the madwifi drivers
+# madwifi_ab - atheros 802.11a/b multi-mode using the madwifi drivers
+# madwifi_ag - atheros 802.11a/g multi-mode using the madwifi drivers
# generic - Generic card with no specific support. You will have
# to put this into monitor mode yourself!
# wsp100 - WSP100 embedded remote sensor.
diff -uNr kismet-devel/docs/README.html kismet-madwifi/docs/README.html
--- kismet-devel/docs/README.html 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/docs/README.html 2003-10-24 13:19:59.000000000 -0600
@@ -34,6 +34,7 @@
drone
airport (viha)
acx100
+ atheros
GPS Support
Compiling
@@ -381,6 +382,25 @@
Notes: Drivers available from http://acx100.sourceforge.net.
+ ATHEROS
+
+ Cards: 802.11 devices using Atheros 5000 series chipsets
+
+ Notes: Drivers available from http://madwifi.sourceforge.net. Some Atheros chipsets are also
+ supported by vt_ar5k above. Dual-band multi-mode Atheros cards can hop channels across both bands
+ when configured as madwifi_ab or madwifi_ag.
+
+ - 'madwifi_a': 802.11a mode
+ Capture interface: athX
+ - 'madwifi_b': 802.11b mode
+ Capture interface: athX
+ - 'madwifi_g': 802.11g mode
+ Capture interface: athX
+ - 'madwifi_ab': 802.11a/b multi-mode
+ Capture interface: athX
+ - 'madwifi_ag': 802.11a/g multi-mode
+ Capture interface: athX
+
GPS SUPPORT
diff -uNr kismet-devel/kismet_drone.cc kismet-madwifi/kismet_drone.cc
--- kismet-devel/kismet_drone.cc 2003-08-10 12:36:20.000000000 -0600
+++ kismet-madwifi/kismet_drone.cc 2003-10-24 12:30:05.000000000 -0600
@@ -195,6 +195,7 @@
// Default channel hop sequences
vector channel_def80211b;
vector channel_def80211a;
+ vector channel_def80211ab;
// We don't actually use this but we need it for calls
map bssid_wep_map;
@@ -531,11 +532,12 @@
// Parse our default channel listing
channel_def80211a = ParseChannelLine(conf->FetchOpt("80211achannels"));
channel_def80211b = ParseChannelLine(conf->FetchOpt("80211bchannels"));
+ channel_def80211ab = ParseChannelLine(conf->FetchOpt("80211abchannels"));
// Parse and assign our channels
vector sourcechannellines = conf->FetchOptVec("sourcechannels");
ParseSetChannels(&sourcechannellines, &packet_sources, channel_split,
- &channel_def80211a, &channel_def80211b);
+ &channel_def80211a, &channel_def80211b, &channel_def80211ab);
}
diff -uNr kismet-devel/kismet_server.cc kismet-madwifi/kismet_server.cc
--- kismet-devel/kismet_server.cc 2003-08-10 12:36:20.000000000 -0600
+++ kismet-madwifi/kismet_server.cc 2003-10-24 12:30:22.000000000 -0600
@@ -1089,6 +1089,7 @@
// Default channel hop sequences
vector channel_def80211b;
vector channel_def80211a;
+ vector channel_def80211ab;
int beacon_log = 1;
@@ -1504,11 +1505,12 @@
// Parse our default channel listing
channel_def80211a = ParseChannelLine(conf->FetchOpt("80211achannels"));
channel_def80211b = ParseChannelLine(conf->FetchOpt("80211bchannels"));
+ channel_def80211ab = ParseChannelLine(conf->FetchOpt("80211abchannels"));
// Parse and assign our channels
vector sourcechannellines = conf->FetchOptVec("sourcechannels");
ParseSetChannels(&sourcechannellines, &packet_sources, channel_split,
- &channel_def80211a, &channel_def80211b);
+ &channel_def80211a, &channel_def80211b, &channel_def80211ab);
}
// Now parse the rest of our options
diff -uNr kismet-devel/man/kismet.conf.5 kismet-madwifi/man/kismet.conf.5
--- kismet-devel/man/kismet.conf.5 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/man/kismet.conf.5 2003-10-24 13:40:42.000000000 -0600
@@ -201,6 +201,16 @@
.PP
ar5k - AR5K-based 802.11a cards using the vt_ar5k drivers.
.PP
+madwifi_a - Atheros cards using the madwifi drivers in 802.11a mode.
+.PP
+madwifi_b - Atheros cards using the madwifi drivers in 802.11b mode.
+.PP
+madwifi_g - Atheros cards using the madwifi drivers in 802.11g mode.
+.PP
+madwifi_ab - Atheros cards using the madwifi drivers in 802.11a/b multi-mode.
+.PP
+madwifi_ag - Atheros cards using the madwifi drivers in 802.11a/g multi-mode.
+.PP
drone - Kismet remote drone.
.PP
viha - Viha OSX Airport drivers.
diff -uNr kismet-devel/packetsource.h kismet-madwifi/packetsource.h
--- kismet-devel/packetsource.h 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/packetsource.h 2003-10-24 13:20:43.000000000 -0600
@@ -46,7 +46,12 @@
card_ar5k,
card_drone,
card_prism2_avs,
- card_acx100
+ card_acx100,
+ card_madwifi_a,
+ card_madwifi_b,
+ card_madwifi_g,
+ card_madwifi_ab,
+ card_madwifi_ag
};
// Packet capture source superclass
diff -uNr kismet-devel/packetsourceutil.cc kismet-madwifi/packetsourceutil.cc
--- kismet-devel/packetsourceutil.cc 2003-09-14 11:08:08.000000000 -0600
+++ kismet-madwifi/packetsourceutil.cc 2003-10-24 13:24:07.000000000 -0600
@@ -41,7 +41,12 @@
"ar5k",
"drone",
"prism2_avs",
- "acx100"
+ "acx100",
+ "madwifi_a",
+ "madwifi_b",
+ "madwifi_g",
+ "madwifi_ab",
+ "madwifi_ag"
};
@@ -138,6 +143,16 @@
csrc->cardtype = card_prism2_avs;
else if (!strcasecmp(sctype, "acx100"))
csrc->cardtype = card_acx100;
+ else if (!strcasecmp(sctype, "madwifi_a"))
+ csrc->cardtype = card_madwifi_a;
+ else if (!strcasecmp(sctype, "madwifi_b"))
+ csrc->cardtype = card_madwifi_b;
+ else if (!strcasecmp(sctype, "madwifi_g"))
+ csrc->cardtype = card_madwifi_g;
+ else if (!strcasecmp(sctype, "madwifi_ab"))
+ csrc->cardtype = card_madwifi_ab;
+ else if (!strcasecmp(sctype, "madwifi_ag"))
+ csrc->cardtype = card_madwifi_ag;
else {
fprintf(stderr, "FATAL: Source %d (%s): Unknown card type '%s'\n", src, csrc->name.c_str(), sctype);
exit(1);
@@ -158,7 +173,9 @@
} else if (ctype == card_cisco || ctype == card_cisco_cvs || ctype == card_cisco_bsd ||
ctype == card_prism2 || ctype == card_prism2_bsd || ctype == card_prism2_hostap ||
ctype == card_orinoco || ctype == card_generic || ctype == card_ar5k ||
- ctype == card_prism2_avs || ctype == card_acx100) {
+ ctype == card_prism2_avs || ctype == card_acx100 || ctype == card_madwifi_a ||
+ ctype == card_madwifi_b || ctype == card_madwifi_g || ctype == card_madwifi_ab ||
+ ctype == card_madwifi_ag) {
#ifdef HAVE_LIBPCAP
if (csrc->interface == "") {
fprintf(stderr, "FATAL: Source %d (%s): No capture device specified.\n", src, csrc->name.c_str());
@@ -358,7 +375,8 @@
// This is a really big, really scary function that handles figuring out who gets custom channels,
// who gets default channels, and how those channels get split over multiple capture sources.
int ParseSetChannels(vector *in_sourcechanlines, vector *in_capsources,
- int in_chsplit, vector *in_80211adefaults, vector *in_80211bdefaults) {
+ int in_chsplit, vector *in_80211adefaults, vector *in_80211bdefaults,
+ vector *in_80211abdefaults) {
// Capname to sequence ID map - this links multisources on a single sequence, and defaults
map cap_seqid_map;
// Sequence ID to channel sequences
@@ -375,6 +393,8 @@
seqid_count_map[-2] = 0;
seqid_seq_map[-1] = (*in_80211adefaults);
seqid_seq_map[-2] = (*in_80211bdefaults);
+ seqid_count_map[-3] = 0;
+ seqid_seq_map[-3] = (*in_80211abdefaults);
// Temporary vectors of capnames and such
vector sourcecaps;
@@ -426,10 +446,14 @@
csrc->cardtype == card_cisco_cvs) {
// non-hopping cap types
continue;
- } else if (csrc->cardtype == card_ar5k) {
+ } else if (csrc->cardtype == card_ar5k || csrc->cardtype == card_madwifi_a) {
// 802.11a
seqid_count_map[-1]++;
cap_seqid_map[csrc->name] = -1;
+ } else if (csrc->cardtype == card_madwifi_ab || csrc->cardtype == card_madwifi_ag) {
+ // 802.11a and 802.11b/g
+ seqid_count_map[-3]++;
+ cap_seqid_map[csrc->name] = -3;
} else {
// Everything else is 802.11b
seqid_count_map[-2]++;
@@ -886,14 +910,14 @@
data[0] = pak.data[0];
} else if (pak.packtype == CAPPACK_PACKET) {
// Handle reading packets - we have the kis_packet struct and then the data
- // also assmble the pointers
+ // also assemble the pointers
memcpy(packet, pak.data, sizeof(kis_packet));
memcpy(data, &pak.data[sizeof(kis_packet)], packet->len);
packet->data = data;
packet->moddata = moddata;
} else if (pak.packtype == CAPPACK_TEXT) {
// Its a string, we'll memcpy it tho just to make sure its null terminated
- // correcly
+ // correctly
memcpy(status, pak.data, kismin(STATUS_MAX, pak.datalen));
status[kismin(STATUS_MAX, pak.datalen)] = 0;
(*in_text) = status;
diff -uNr kismet-devel/packetsourceutil.h kismet-madwifi/packetsourceutil.h
--- kismet-devel/packetsourceutil.h 2003-09-14 11:08:08.000000000 -0600
+++ kismet-madwifi/packetsourceutil.h 2003-10-24 12:58:12.000000000 -0600
@@ -78,7 +78,8 @@
Timetracker *in_tracker, GPSD *in_gps);
vector ParseChannelLine(string in_channels);
int ParseSetChannels(vector *in_sourcechanlines, vector *in_capsources,
- int in_chsplit, vector *in_80211adefaults, vector *in_80211bdefaults);
+ int in_chsplit, vector *in_80211adefaults, vector *in_80211bdefaults,
+ vector *in_80211abdefaults);
// negative numbers are commands, positive numbers are a channel set. All commands are
// one byte.
diff -uNr kismet-devel/pcapsource.cc kismet-madwifi/pcapsource.cc
--- kismet-devel/pcapsource.cc 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/pcapsource.cc 2003-10-24 13:36:06.000000000 -0600
@@ -125,7 +125,9 @@
// Set up the ioctl stuff for pcap cards that work via the ioctl extentions
#ifdef HAVE_LINUX_WIRELESS
- if (ctype == card_prism2 || ctype == card_prism2_hostap || ctype == card_orinoco || ctype == card_acx100) {
+ if (ctype == card_prism2 || ctype == card_prism2_hostap || ctype == card_orinoco ||
+ ctype == card_acx100 || cardtype == card_madwifi_a || cardtype == card_madwifi_b ||
+ cardtype == card_madwifi_g || cardtype == card_madwifi_ab || cardtype == card_madwifi_ag) {
// Cribbed from the wireless tools
static const int families[] = {
AF_INET, AF_IPX, AF_AX25, AF_APPLETALK
@@ -322,10 +324,15 @@
packet->channel = p2head->channel.data;
- // For now, anything not the ar5k is 802.11b
- if (cardtype == card_ar5k)
+ if (cardtype == card_ar5k || cardtype == card_madwifi_a) // ar5k and madwifi_a are 802.11a
packet->carrier = carrier_80211a;
- else
+ else if (cardtype == card_madwifi_g) // madwifi_g is 802.11g
+ packet->carrier = carrier_80211g;
+ else if (cardtype == card_madwifi_ab) // madwifi_ab could be either 802.11a or 802.11b
+ packet->carrier = (packet->channel > 14) ? carrier_80211a : carrier_80211b;
+ else if (cardtype == card_madwifi_ag) // madwifi_ag could be either 802.11a or 802.11g
+ packet->carrier = (packet->channel > 14) ? carrier_80211a : carrier_80211g;
+ else // everything else is 802.11b
packet->carrier = carrier_80211b;
}
@@ -358,7 +365,7 @@
packet->signal = bsdhead->wi_signal;
packet->noise = bsdhead->wi_silence;
packet->quality = ((packet->signal - packet->noise) * 100) / 256;
-
+
// Set our offset
callback_offset = sizeof(bsd_80211_header);
@@ -450,6 +457,23 @@
char shellcmd[1024];
int ret = 0;
+ // Switch to appropriate carrier for new channel if necessary.
+ if (cardtype == card_madwifi_ab) {
+ // Only set carrier if new channel is in different band than old channel or if
+ // we are setting the channel for the first time.
+ // Channels 1-14 are a different band than channels >14. Kind of crude, but it
+ // works well at least until there are various multi-carrier scenarios.
+ if ((!channel || channel <= 14) && chan > 14)
+ SetCarrier(carrier_80211a);
+ else if ((!channel || channel > 14) && chan <= 14)
+ SetCarrier(carrier_80211g);
+ } else if (cardtype == card_madwifi_ag) {
+ if ((!channel || channel <= 14) && chan > 14)
+ SetCarrier(carrier_80211a);
+ else if ((!channel || channel > 14) && chan <= 14)
+ SetCarrier(carrier_80211g);
+ }
+
if (cardtype == card_prism2) {
snprintf(shellcmd, 1024, "wlanctl-ng %s lnxreq_wlansniff channel=%d enable=true prismheader=true >/dev/null",
carddev, chan);
@@ -464,7 +488,9 @@
snprintf(shellcmd, 1024, "prism2ctl %s -f %d >/dev/null", carddev, chan);
if ((ret = PcapShellCmd(shellcmd)) > 0)
channel = chan;
- } else if (cardtype == card_prism2_hostap || cardtype == card_ar5k) {
+ } else if (cardtype == card_prism2_hostap || cardtype == card_ar5k || cardtype == card_madwifi_a ||
+ cardtype == card_madwifi_b || cardtype == card_madwifi_g || cardtype == card_madwifi_ab ||
+ cardtype == card_madwifi_ag) {
snprintf(shellcmd, 1024, "iwconfig %s channel %d >/dev/null", carddev, chan);
if ((ret = PcapShellCmd(shellcmd)) > 0)
channel = chan;
@@ -483,10 +509,40 @@
return ret;
}
+int PcapSource::SetCarrier(carrier_type car) {
+ char shellcmd[1024];
+ int ret = 0;
+
+ if (cardtype == card_madwifi_ab || cardtype == card_madwifi_ag) {
+ int mode = 0;
+ if (car == carrier_80211a) {
+ mode = 1;
+ } else if (car == carrier_80211b) {
+ mode = 2;
+ } else if (car == carrier_80211g) {
+ mode = 3;
+ } else {
+ snprintf(errstr, 1024, "pcapsource: don't know how to change to carrier %d for cardtype %d", car, cardtype);
+ return 0;
+ }
+ snprintf(shellcmd, 1024, "iwpriv %s mode %d >/dev/null", carddev, mode);
+ if ((ret = PcapShellCmd(shellcmd)) > 0) {
+ // madwifi drops out of monitor mode when changing bands
+ snprintf(shellcmd, 1024, "iwconfig %s mode monitor >/dev/null", carddev);
+ ret = PcapShellCmd(shellcmd);
+ }
+ } else {
+ snprintf(errstr, 1024, "pcapsource: don't know how to change carrier for cardtype %d", cardtype);
+ }
+ return ret;
+}
+
int PcapSource::FetchChannel() {
#ifdef HAVE_LINUX_WIRELESS
// Use ioctl's to get the current channel if we're a card type that supports them
- if (cardtype == card_prism2 || cardtype == card_prism2_hostap || cardtype == card_orinoco || cardtype == card_acx100) {
+ if (cardtype == card_prism2 || cardtype == card_prism2_hostap || cardtype == card_orinoco ||
+ cardtype == card_acx100 || cardtype == card_madwifi_a || cardtype == card_madwifi_b ||
+ cardtype == card_madwifi_g || cardtype == card_madwifi_ab || cardtype == card_madwifi_ag) {
iwreq wrq;
strncpy(wrq.ifr_name, carddev, IFNAMSIZ);
if (ioctl(ioctl_sock, SIOCGIWFREQ, &wrq) < 0) {
diff -uNr kismet-devel/pcapsource.h kismet-madwifi/pcapsource.h
--- kismet-devel/pcapsource.h 2003-08-04 23:43:40.000000000 -0600
+++ kismet-madwifi/pcapsource.h 2003-10-23 17:20:45.000000000 -0600
@@ -62,6 +62,8 @@
int SetChannel(unsigned int chan);
+ int SetCarrier(carrier_type carrier);
+
int FetchChannel();
protected:
diff -uNr kismet-devel/scripts/kismet_monitor.in kismet-madwifi/scripts/kismet_monitor.in
--- kismet-devel/scripts/kismet_monitor.in 2003-07-17 19:25:09.000000000 -0600
+++ kismet-madwifi/scripts/kismet_monitor.in 2003-10-24 13:37:12.000000000 -0600
@@ -125,6 +125,36 @@
iwconfig $DEVICE mode monitor
ifconfig $DEVICE promisc up
;;
+ "madwifi_a")
+ echo "Enabling monitor mode for an 802.11a madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 1
+ iwconfig $DEVICE mode monitor
+ ifconfig $DEVICE promisc up
+ ;;
+ "madwifi_b")
+ echo "Enabling monitor mode for an 802.11b madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 2
+ iwconfig $DEVICE mode monitor
+ ifconfig $DEVICE promisc up
+ ;;
+ "madwifi_g")
+ echo "Enabling monitor mode for an 802.11g madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 3
+ iwconfig $DEVICE mode monitor
+ ifconfig $DEVICE promisc up
+ ;;
+ "madwifi_ab")
+ echo "Enabling monitor mode for an 802.11a/b madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 1
+ iwconfig $DEVICE mode monitor
+ ifconfig $DEVICE promisc up
+ ;;
+ "madwifi_ag")
+ echo "Enabling monitor mode for an 802.11a/g madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 1
+ iwconfig $DEVICE mode monitor
+ ifconfig $DEVICE promisc up
+ ;;
*)
exit 0
;;
diff -uNr kismet-devel/scripts/kismet_unmonitor.in kismet-madwifi/scripts/kismet_unmonitor.in
--- kismet-devel/scripts/kismet_unmonitor.in 2003-04-24 13:40:10.000000000 -0600
+++ kismet-madwifi/scripts/kismet_unmonitor.in 2003-10-24 13:37:44.000000000 -0600
@@ -180,6 +180,36 @@
echo "Disabling monitore mode for an ar5k 802.11a on $DEVICE (setting to managed)"
iwconfig $DEVICE mode managed
;;
+ "madwifi_a")
+ echo "Disabling monitor mode for an 802.11a madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 0
+ iwconfig $DEVICE mode managed
+ ifconfig $DEVICE -promisc up
+ ;;
+ "madwifi_b")
+ echo "Disabling monitor mode for an 802.11b madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 0
+ iwconfig $DEVICE mode managed
+ ifconfig $DEVICE -promisc up
+ ;;
+ "madwifi_g")
+ echo "Disabling monitor mode for an 802.11g madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 0
+ iwconfig $DEVICE mode managed
+ ifconfig $DEVICE -promisc up
+ ;;
+ "madwifi_ab")
+ echo "Disabling monitor mode for an 802.11a/b madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 0
+ iwconfig $DEVICE mode managed
+ ifconfig $DEVICE -promisc up
+ ;;
+ "madwifi_ag")
+ echo "Disabling monitor mode for an 802.11a/g madwifi atheros card on $DEVICE"
+ iwpriv $DEVICE mode 0
+ iwconfig $DEVICE mode managed
+ ifconfig $DEVICE -promisc up
+ ;;
*)
echo "Unknown card type '$CARDTYPE'. Doing nothing."
;;