summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/kismet/Makefile8
-rw-r--r--package/kismet/files/ap_manuf79
-rw-r--r--package/kismet/files/client_manuf249
-rw-r--r--package/kismet/files/kismet.conf52
-rw-r--r--package/kismet/files/kismet_drone.conf7
-rw-r--r--package/kismet/files/kismet_ui.conf47
-rw-r--r--package/kismet/patches/100-remove_sources.patch (renamed from package/kismet/patches/remove-sources.patch)0
-rw-r--r--package/kismet/patches/110-uclibc++_fixes.patch (renamed from package/kismet/patches/uclibc++-fixes.patch)1
-rw-r--r--package/kismet/patches/120-remove_sound.patch1051
9 files changed, 1396 insertions, 98 deletions
diff --git a/package/kismet/Makefile b/package/kismet/Makefile
index 7b8c57c94..7675b90b3 100644
--- a/package/kismet/Makefile
+++ b/package/kismet/Makefile
@@ -96,8 +96,12 @@ $(PKG_BUILD_DIR)/kismet_server $(PKG_BUILD_DIR)/kismet_drone $(PKG_BUILD_DIR)/ki
$(IPKG_SERVER): $(PKG_BUILD_DIR)/kismet_server
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_SERVER) kismet-server.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_SERVER)/etc
+ cp ./files/ap_manuf $(IDIR_SERVER)/etc/
+ cp ./files/client_manuf $(IDIR_SERVER)/etc/
cp ./files/kismet.conf $(IDIR_SERVER)/etc/
echo '/etc/kismet.conf' > $(IDIR_SERVER)/CONTROL/conffiles
+ echo '/etc/ap_manuf' >> $(IDIR_SERVER)/CONTROL/conffiles
+ echo '/etc/client_manuf' >> $(IDIR_SERVER)/CONTROL/conffiles
mkdir -p $(IDIR_SERVER)/usr/sbin
cp $< $(IDIR_SERVER)/usr/sbin/
$(STRIP) $(IDIR_SERVER)/usr/sbin/*
@@ -124,10 +128,14 @@ $(INFO_DRONE): $(IPKG_DRONE)
$(IPKG_CLIENT): $(PKG_BUILD_DIR)/kismet_client
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_CLIENT) kismet-client.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_CLIENT)/etc
+ cp ./files/ap_manuf $(IDIR_CLIENT)/etc/
+ cp ./files/client_manuf $(IDIR_CLIENT)/etc/
cp ./files/kismet.conf $(IDIR_CLIENT)/etc/
cp ./files/kismet_ui.conf $(IDIR_CLIENT)/etc/
echo '/etc/kismet.conf' > $(IDIR_CLIENT)/CONTROL/conffiles
echo '/etc/kismet_ui.conf' >> $(IDIR_CLIENT)/CONTROL/conffiles
+ echo '/etc/ap_manuf' >> $(IDIR_CLIENT)/CONTROL/conffiles
+ echo '/etc/client_manuf' >> $(IDIR_CLIENT)/CONTROL/conffiles
mkdir -p $(IDIR_CLIENT)/usr/sbin
cp $< $(IDIR_CLIENT)/usr/sbin/
$(STRIP) $(IDIR_CLIENT)/usr/sbin/*
diff --git a/package/kismet/files/ap_manuf b/package/kismet/files/ap_manuf
new file mode 100644
index 000000000..7561b6d5b
--- /dev/null
+++ b/package/kismet/files/ap_manuf
@@ -0,0 +1,79 @@
+00:01:03:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:01:24:00:00:00/FF:FF:FF:00:00:00 SMC Unknown default 6 192.168.2.1
+00:01:24:24:00:00/FF:FF:FF:FF:00:00 SMC SMC7004AWBR default 6 192.168.2.1
+00:02:2D:00:00:00/FF:FF:FF:00:00:00 Lucent Unknown 0
+00:02:6F:00:00:00/FF:FF:FF:00:00:00 Senao Unknown 0
+00:02:A5:00:00:00/FF:FF:FF:00:00:00 Compaq Unknown 0
+00:03:2F:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown 0
+00:04:3A:3A:00:00/FF:FF:FF:FF:00:00 Avaya ad-01444 0
+00:04:5A:0E:00:00/FF:FF:FF:FF:00:00 Linksys WAP11 linksys 6 192.168.1.1
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 linksys 6 192.168.1.1
+00:04:5A:2E:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 linksys 6 192.168.1.1
+00:04:5A:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys 6 192.168.1.1
+00:04:75:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:04:75:75:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE20096A AP2000 Version 1 3Com 0 169.254.0.1
+00:04:E2:00:00:00/FF:FF:FF:00:00:00 SMC Unknown 0
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC 7004AWBR default 6 192.168.2.1
+00:05:5D:00:00:00/FF:FF:FF:00:00:00 D-Link Unknown default 6
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-1000AP default 6
+00:06:25:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys 6 192.168.1.1
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 v2 linksys 6 192.168.1.1
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WET11 linksys 6 192.168.1.225
+00:07:0E:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:07:50:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:08:21:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:43:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:5B:00:00:00/FF:FF:FF:00:00:00 Netgear Unknown 0
+00:09:7C:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:92:92:00:00/FF:FF:FF:FF:00:00 Sweex LC000010 wireless 11 192.168.0.1
+00:09:E8:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:41:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:8A:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:8A:8A:00:00/FF:FF:FF:FF:00:00 Cisco AIR-AP1200 0
+00:30:65:00:00:00/FF:FF:FF:00:00:00 Apple Unknown 0
+00:30:65:65:00:00/FF:FF:FF:FF:00:00 Apple Snow Base Station 1
+00:30:AB:00:00:00/FF:FF:FF:00:00:00 Netgear Unknown 0
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MR314NA Wireless 1 192.168.0.1
+00:30:BD:00:00:00/FF:FF:FF:00:00:00 Belkin Unknown 0
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6230-3 0
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DI-614+ default 6 192.168.0.1
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DWL-900AP+ default 6 192.168.0.50
+00:40:26:00:00:00/FF:FF:FF:00:00:00 Buffalo Unknown 0
+00:40:26:26:00:00/FF:FF:FF:FF:00:00 Buffalo WLAR-L11G-L 0
+00:40:96:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown tsunami 6
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-AP342E2R tsunami 6 192.168.1.1
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AP-350 tsunami 7
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco Aironet 350 tsunami 6
+00:50:08:00:00:00/FF:FF:FF:00:00:00 Compaq Unknown 0
+00:50:8B:8B:00:00/FF:FF:FF:FF:00:00 Compaq WL400 - ETSI region compaq 11
+00:50:DA:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:50:DA:DA:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE747A 0
+00:50:F2:F2:00:00/FF:FF:FF:FF:00:00 Microsoft MN-500 MSHOME 6 192.168.0.1
+00:60:01:00:00:00/FF:FF:FF:00:00:00 Lucent Unknown 0
+00:60:1D:00:00:00/FF:FF:FF:00:00:00 Orinoco Unknown 0
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Orinoco RG1000 0
+00:60:6D:00:00:00/FF:FF:FF:00:00:00 Cabletron Unknown 0
+00:60:B3:00:00:00/FF:FF:FF:00:00:00 Proxim Unknown 0
+00:80:37:37:00:00/FF:FF:FF:FF:00:00 Ericsson A11 (AP-4121-105M-ER-EU) 0
+00:80:C6:00:00:00/FF:FF:FF:00:00:00 SOHOware Unknown
+00:80:C6:C6:00:00/FF:FF:FF:FF:00:00 SOHOware NetBlaster II
+00:90:4B:4B:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 linksys 6 192.168.1.1
+00:90:D1:00:00:00/FF:FF:FF:00:00:00 SMC Unknown WLAN 11
+00:90:D1:D1:00:00/FF:FF:FF:FF:00:00 SMC SMC2652W WLAN 11
+00:90:D1:D1:00:00/FF:FF:FF:FF:00:00 SMC SMC2682W BRIDGE 11
+00:A0:04:00:00:00/FF:FF:FF:00:00:00 3Com Unknown
+00:A0:04:04:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE51196
+00:A0:F8:00:00:00/FF:FF:FF:00:00:00 Symbol Unknown
+00:E0:29:00:00:00/FF:FF:FF:00:00:00 OEM Unknown
+08:00:46:00:00:00/FF:FF:FF:00:00:00 Sony Unknown
+00:50:F2:00:00:00/FF:FF:FF:00:00:00 Microsoft Unknown MSHOME 6 192.168.2.1
+00:09:5B:00:00:00/FF:FF:FF:00:00:00 Netgear Unknwon NETGEAR 11 192.168.0.1
+00:30:BD:00:00:00/FF:FF:FF:00:00:00 Belkin Unknown WLAN 11 0.0.0.0
+00:09:5B:00:00:00/FF:FF:FF:00:00:00 Netgear Unknown Wireless 11 192.168.0.2
+00:30:BD:00:00:00/FF:FF:FF:00:00:00 Belkin Unknown belkin54g 11 0.0.0.0
+00:0D:88:00:00:00/FF:FF:FF:00:00:00 D-Link Unknown default 6 192.168.0.1
+00:80:C8:00:00:00/FF:FF:FF:00:00:00 D-Link Unknown default 6 192.168.0.1
+00:40:05:00:00:00/FF:FF:FF:00:00:00 ANI Unknown default 6 192.168.0.1
+00:0C:41:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys 6 192.168.1.1
+00:04:E2:00:00:00/FF:FF:FF:00:00:00 SMC Unknown SMC 6 192.168.2.1
+00:06:25:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys-g 6 192.168.1.1
diff --git a/package/kismet/files/client_manuf b/package/kismet/files/client_manuf
new file mode 100644
index 000000000..b1c5ef425
--- /dev/null
+++ b/package/kismet/files/client_manuf
@@ -0,0 +1,249 @@
+00:00:22:22:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Silver 0
+00:00:8F:8F:00:00/FF:FF:FF:FF:00:00 BreezeCOM Breezenet Pro SA-PC 0
+00:01:03:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:01:03:03:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE62092A
+00:01:03:03:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE777A 0
+00:01:24:00:00:00/FF:FF:FF:00:00:00 SMC Unknown default 6 192.168.2.1
+00:01:F4:F4:00:00/FF:FF:FF:FF:00:00 Entrasys CSIBD-AB-S Roamabout 0
+00:02:2D:00:00:00/FF:FF:FF:00:00:00 Lucent Unknown 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Agere Orinoco Gold
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Agere PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Avaya PC24E-H-ET
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Avaya PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Avaya World Card Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Buffalo WLI-PCM-L11
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Buffalo WLI-PCM-L11
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Buffalo WLI-PCM-L11GP 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Dell TrueMobile 1150
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Dell TrueMobile 1150 Mini-PCI 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Dell Truemobile 1150 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Dell true mobile 1150 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Gold
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN Silver 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN Silver (PC24E-H-FC) 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN-Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN/IEEE Version 01.01 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco MiniPCI Card (embedded in Sony Laptop) 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Orinoco Gold wireless 3
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Orinoco Gold
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Orinoco Mini PCI Card 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco PC Card T2 Extended ORiNOCO Europe 128RC4 Kit Gold 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco PC24E-H-ET
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco PC24E-H-FC 0
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Silver
+00:02:2D:2D:00:00/FF:FF:FF:FF:00:00 Orinoco Silver
+00:02:6F:00:00:00/FF:FF:FF:00:00:00 Senao Unknown 0
+00:02:6F:6F:00:00/FF:FF:FF:FF:00:00 Senao SL-2011 CD
+00:02:6F:6F:00:00/FF:FF:FF:FF:00:00 Senao SL-2011CD 0
+00:02:6F:6F:00:00/FF:FF:FF:FF:00:00 Senao SL-2011CD
+00:02:6F:6F:00:00/FF:FF:FF:FF:00:00 Senao SL-2511CD PLUS EXT2(F200) 0
+00:02:A5:00:00:00/FF:FF:FF:00:00:00 Compaq Unknown 0
+00:02:A5:A5:00:00/FF:FF:FF:FF:00:00 Compaq WL110
+00:02:A5:A5:00:00/FF:FF:FF:FF:00:00 Compaq WL110 REV.0A 0
+00:02:B3:B3:00:00/FF:FF:FF:FF:00:00 Intel WPC-2011BWW 0
+00:03:2F:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown 0
+00:03:2F:2F:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 0
+00:03:2F:2F:00:00/FF:FF:FF:FF:00:00 Linksys WPC11
+00:03:2F:2F:00:00/FF:FF:FF:FF:00:00 Repotec GL241101
+00:04:5A:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown 0
+00:04:5A:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown Linksys 6 192.168.1.1
+00:04:5A:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys 6 192.168.1.1
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 linksys 0
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys WPC11
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys WPC11
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys WPC11
+00:04:5A:5A:00:00/FF:FF:FF:FF:00:00 Linksys WUSB11
+00:04:75:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:04:75:75:00:00/FF:FF:FF:FF:00:00 3Com 3CRSHPW696 0
+00:04:75:75:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE62092B 0
+00:04:75:75:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE62092B
+00:04:DB:DB:00:00/FF:FF:FF:FF:00:00 Tellus TWL-C11 0
+00:04:E2:00:00:00/FF:FF:FF:00:00:00 SMC Unknown 0
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W 0
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W
+00:04:E2:E2:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W
+00:05:3C:3C:00:00/FF:FF:FF:FF:00:00 Intel Intel MiniPCI High Rate Wireless (ISL3874A) 0
+00:05:5D:00:00:00/FF:FF:FF:00:00:00 D-Link Unknown 0
+00:05:5D:00:00:00/FF:FF:FF:00:00:00 D-Link Unknown default 6
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 Compaq HNW-100 0
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DCF-650W
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650 0
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650 0
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650 0
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650H
+00:05:5D:5D:00:00/FF:FF:FF:FF:00:00 D-Link DWL-660 H/W:A1 F/W:4.04 0
+00:06:25:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown 0
+00:06:25:00:00:00/FF:FF:FF:00:00:00 Linksys Unknown linksys 6 192.168.1.1
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 D-Link DCF-650W
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Dell True Mobile 1150 6
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys BEFW11S4 v2 linksys 6 192.168.1.1
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WCF11 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WCF11
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WCF12 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WCF12
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WCF12
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WMP11 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WMP11 v2.5 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 V.3 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v2.5
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v2.5
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 v3.0 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WPC11 ver.3 (FCC-ID: PKW-WPC11-V31[suggests V3.1]) 0
+00:06:25:25:00:00/FF:FF:FF:FF:00:00 Linksys WUSB11 v2.6 0
+00:07:0E:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:07:0E:0E:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:07:0E:0E:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:07:50:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:07:50:50:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:07:50:50:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM350 0
+00:08:21:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:08:21:21:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:08:21:21:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:08:21:21:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:08:21:21:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:09:43:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:43:43:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:09:5B:00:00:00/FF:FF:FF:00:00:00 Netgear Unknown 0
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear MA401 0
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear MA401RA 0
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear MA401RA
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear MA701 0
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear MA701
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear ma101 0
+00:09:5B:5B:00:00/FF:FF:FF:FF:00:00 Netgear wab501 0
+00:09:7C:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:7C:7C:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:09:7C:7C:00:00/FF:FF:FF:FF:00:00 Cisco Cisco Aironet 352 802.11b pcmcia card 0
+00:09:92:92:00:00/FF:FF:FF:FF:00:00 Sweex LC500010 ATMEL PCMCIA FastVNET (502A-D) 0
+00:09:B7:B7:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352 0
+00:09:B7:B7:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352 0
+00:09:E8:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:09:E8:E8:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352
+00:0A:41:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:41:41:00:00/FF:FF:FF:FF:00:00 Cisco AIR-LMC352 0
+00:0A:41:41:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352 0
+00:0A:41:41:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352 0
+00:0A:41:41:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:0A:41:41:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:0A:8A:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:8A:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:0A:8A:8A:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:0B:5F:5F:00:00/FF:FF:FF:FF:00:00 Cisco AIR-CB20A-A-K9 0
+00:20:A6:A6:00:00/FF:FF:FF:FF:00:00 Proxim Symphony (PC Card 4430) 0
+00:20:D6:D6:00:00/FF:FF:FF:FF:00:00 BreezeCOM Breezenet Pro.11 SA-PCR 0
+00:30:65:00:00:00/FF:FF:FF:00:00:00 Apple Unknown 0
+00:30:65:00:00:00/FF:FF:FF:00:00:00 Apple Unknown 0
+00:30:65:65:00:00/FF:FF:FF:FF:00:00 Apple Airport Card 2002
+00:30:AB:00:00:00/FF:FF:FF:00:00:00 Netgear Unknown 0
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MA401 0
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MA401
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MA401
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MA401
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MA401
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear MR314 Wireless 1 192.168.0.1
+00:30:AB:AB:00:00/FF:FF:FF:FF:00:00 Netgear Netgear ma401 0
+00:30:BD:00:00:00/FF:FF:FF:00:00:00 Belkin Unknown 0
+00:30:BD:00:00:00/FF:FF:FF:00:00:00 Belkin Unknown 0
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020 0
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020 0
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020 (Version 01.02) 0
+00:30:BD:BD:00:00/FF:FF:FF:FF:00:00 Belkin F5D6020u 0
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DI-614+ default 6 192.168.0.1
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DI-614+ 22Mbps router/AP/switch default 6 192.168.0.1
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DWL-520+ 0
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650 0
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650 internet 8
+00:40:05:05:00:00/FF:FF:FF:FF:00:00 D-Link DWL-650+ wireless 6 192.168.0.1
+00:40:26:00:00:00/FF:FF:FF:00:00:00 Buffalo Unknown 0
+00:40:96:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown 0
+00:40:96:00:00:00/FF:FF:FF:00:00:00 Cisco Unknown tsunami 6
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco 350
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PC4800
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340 0
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340 0
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM340 (Dell Rebrand) 0
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco AIR-PCM352
+00:40:96:96:00:00/FF:FF:FF:FF:00:00 Cisco PC 4800 DS PCI Adapter 0
+00:50:08:00:00:00/FF:FF:FF:00:00:00 Compaq Unknown 0
+00:50:08:08:00:00/FF:FF:FF:FF:00:00 Compaq WL100 0
+00:50:08:08:00:00/FF:FF:FF:FF:00:00 Compaq WL100
+00:50:8B:8B:00:00/FF:FF:FF:FF:00:00 Compaq Compaq WL100 compaq 0
+00:50:8B:8B:00:00/FF:FF:FF:FF:00:00 Compaq WL200 - ETSI region 0
+00:50:DA:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:50:DA:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:50:DA:DA:00:00/FF:FF:FF:FF:00:00 3Com 3CRWE73796B
+00:50:F2:F2:00:00/FF:FF:FF:FF:00:00 Microsoft MN-510 0
+00:50:F2:F2:00:00/FF:FF:FF:FF:00:00 Microsoft Wireless Notebook Adapter MN-520 0
+00:60:01:00:00:00/FF:FF:FF:00:00:00 Lucent Unknown 0
+00:60:01:01:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN Silver
+00:60:1D:00:00:00/FF:FF:FF:00:00:00 Lucent Unknown 0
+00:60:1D:00:00:00/FF:FF:FF:00:00:00 Orinoco Unknown 0
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent Lucent WaveLAN Turbo - Bronze, P/N: 011498/A 0
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent Orinoco Gold
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent PC24E-00-FC 0
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent Silver
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN Bronze
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent WaveLAN Gold
+00:60:1D:1D:00:00/FF:FF:FF:FF:00:00 Lucent Wavelan Turbo Bronze 0
+00:60:6D:00:00:00/FF:FF:FF:00:00:00 Cabletron Unknown 0
+00:60:6D:6D:00:00/FF:FF:FF:FF:00:00 Cabletron CSIBB-AA
+00:60:6D:6D:00:00/FF:FF:FF:FF:00:00 Cabletron CSIBB-AA
+00:60:6D:6D:00:00/FF:FF:FF:FF:00:00 Cabletron RoamAbout 802.11DS 0
+00:60:B3:00:00:00/FF:FF:FF:00:00:00 Proxim Unknown 0
+00:60:B3:B3:00:00/FF:FF:FF:FF:00:00 3Com XI-815 0
+00:60:B3:B3:00:00/FF:FF:FF:FF:00:00 3Com Zcom WL2000D 0
+00:60:B3:B3:00:00/FF:FF:FF:FF:00:00 Proxim RangeLAN DS 0
+00:60:B3:B3:00:00/FF:FF:FF:FF:00:00 Proxim RangeLan DS 8430
+00:60:B3:B3:00:00/FF:FF:FF:FF:00:00 SMC SMC2642W
+00:80:37:37:00:00/FF:FF:FF:FF:00:00 Ericsson C11 (LA-4121-102M-ER-EU) 0
+00:80:C6:00:00:00/FF:FF:FF:00:00:00 SOHOware Unknown 0
+00:90:4B:4B:00:00/FF:FF:FF:FF:00:00 Dell 1180 True Mobile PCI 0
+00:90:96:96:00:00/FF:FF:FF:FF:00:00 Yakumo WLAN PCMCIA Card 11 Mbps 0
+00:90:D1:00:00:00/FF:FF:FF:00:00:00 LeArtery Unknown 0
+00:90:D1:00:00:00/FF:FF:FF:00:00:00 SMC Unknown WLAN 11
+00:90:D1:D1:00:00/FF:FF:FF:FF:00:00 LeArtery SyncByAir LN101
+00:90:D1:D1:00:00/FF:FF:FF:FF:00:00 SMC 2662W 0
+00:90:D1:D1:00:00/FF:FF:FF:FF:00:00 SMC SMC2632W 0
+00:A0:04:00:00:00/FF:FF:FF:00:00:00 3Com Unknown 0
+00:A0:65:65:00:00/FF:FF:FF:FF:00:00 Nexland Zcom XI-300 0
+00:A0:F8:00:00:00/FF:FF:FF:00:00:00 Symbol Unknown 0
+00:A0:F8:F8:00:00/FF:FF:FF:FF:00:00 Symbol Spectrum 24 High Rate 11MBps wireless LAN adapter 0
+00:A0:F8:F8:00:00/FF:FF:FF:FF:00:00 Symbol Spectrum24
+00:C0:49:49:00:00/FF:FF:FF:FF:00:00 US Robotics USR1120 0
+00:E0:29:00:00:00/FF:FF:FF:00:00:00 OEM Unknown 0
+00:E0:29:29:00:00/FF:FF:FF:FF:00:00 OEM OEM
+00:E0:29:29:00:00/FF:FF:FF:FF:00:00 SMC 2632W 0
+00:E0:29:29:00:00/FF:FF:FF:FF:00:00 SMC EZ-Connect Wireless 0
+08:00:46:00:00:00/FF:FF:FF:00:00:00 Sony Unknown 0
+08:00:46:46:00:00/FF:FF:FF:FF:00:00 Sony PCWA-C100
diff --git a/package/kismet/files/kismet.conf b/package/kismet/files/kismet.conf
index 4291989b5..1f750a60c 100644
--- a/package/kismet/files/kismet.conf
+++ b/package/kismet/files/kismet.conf
@@ -4,13 +4,13 @@
# not continually reading --help!
# Version of Kismet config
-version=2004.10.R1
+version=2005.01.R1
# Name of server (Purely for organiational purposes)
servername=Kismet
# User to setid to (should be your normal user)
-suiduser=root
+suiduser=nobody
# Sources are defined as:
# source=cardtype,interface,name[,initialchannel]
@@ -18,7 +18,7 @@ suiduser=root
# The initial channel is optional, if hopping is not enabled it can be used
# to set the channel the interface listens on.
# YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE
-source=none,none,addme
+source=wrt54g,prism0,wireless
# Comma-separated list of sources to enable. This is only needed if you defined
# multiple sources and only want to enable some of them. By default, all defined
@@ -99,7 +99,7 @@ allowedhosts=127.0.0.1
maxclients=5
# Do we have a GPS?
-gps=true
+gps=false
# Host:port that GPSD is running on. This can be localhost OR remote!
gpshost=localhost:2947
# Do we lock the mode? This overrides coordinates of lock "0", which will
@@ -161,50 +161,6 @@ allowkeytransmit=true
# How often (in seconds) do we write all our data files (0 to disable)
writeinterval=300
-# Do we use sound?
-# Not to be confused with GUI sound parameter, this controls wether or not the
-# server itself will play sound. Primarily for headless or automated systems.
-sound=false
-# Path to sound player
-soundplay=/usr/bin/play
-# Optional parameters to pass to the player
-# soundopts=--volume=.3
-# New network found
-sound_new=/tmp/share/kismet/wav/new_network.wav
-# Wepped new network
-# sound_new_wep=${prefix}/com/kismet/wav/new_wep_network.wav
-# Network traffic sound
-sound_traffic=/tmp/share/kismet/wav/traffic.wav
-# Network junk traffic found
-sound_junktraffic=/tmp/share/kismet/wav/junk_traffic.wav
-# GPS lock aquired sound
-# sound_gpslock=/tmp/share/kismet/wav/foo.wav
-# GPS lock lost sound
-# sound_gpslost=/tmp/share/kismet/wav/bar.wav
-# Alert sound
-sound_alert=/tmp/share/kismet/wav/alert.wav
-
-# Does the server have speech? (Again, not to be confused with the GUI's speech)
-speech=false
-# Server's path to Festival
-festival=/usr/bin/festival
-# How do we speak? Valid options:
-# speech Normal speech
-# nato NATO spellings (alpha, bravo, charlie)
-# spell Spell the letters out (aye, bee, sea)
-speech_type=nato
-# speech_encrypted and speech_unencrypted - Speech templates
-# Similar to the logtemplate option, this lets you customize the speech output.
-# speech_encrypted is used for an encrypted network spoken string
-# speech_unencrypted is used for an unencrypted network spoken string
-#
-# %b is replaced by the BSSID (MAC) of the network
-# %s is replaced by the SSID (name) of the network
-# %c is replaced by the CHANNEL of the network
-# %r is replaced by the MAX RATE of the network
-speech_encrypted=New network detected, s.s.i.d. %s, channel %c, network encrypted.
-speech_unencrypted=New network detected, s.s.i.d. %s, channel %c, network open.
-
# Where do we get our manufacturer fingerprints from? Assumed to be in the
# default config directory if an absolute path is not given.
ap_manuf=ap_manuf
diff --git a/package/kismet/files/kismet_drone.conf b/package/kismet/files/kismet_drone.conf
index 865278ab7..a48547133 100644
--- a/package/kismet/files/kismet_drone.conf
+++ b/package/kismet/files/kismet_drone.conf
@@ -1,12 +1,12 @@
# Kismet drone config file
-version=Feb.04.01a
+version=2005.04.R1
# Name of server (Purely for organiational purposes)
servername=Kismet
# User to setid to (should be your normal user)
-suiduser=your_user_here
+suiduser=nobody
# Port to serve packet data... This probably shouldn't be the same as the port
# you configured kismet_server for, or else you'll have problems running them
@@ -48,8 +48,7 @@ maxclients=5
# enablesources line to enable them. For example:
# source=prism2,wlan0,prism
# source=cisco,eth0,cisco
-
-source=generic,prism0,Kismet-Drone
+source=wrt54g,prism0,wireless
# Comma-separated list of sources to enable. This is only needed if you wish
# to selectively enable multiple sources.
diff --git a/package/kismet/files/kismet_ui.conf b/package/kismet/files/kismet_ui.conf
index 7a0bcb15c..e704b37e5 100644
--- a/package/kismet/files/kismet_ui.conf
+++ b/package/kismet/files/kismet_ui.conf
@@ -1,10 +1,10 @@
# Kismet GUI config file
# Version of Kismet config
-version=2004.10.R1
+version=2005.04.R1
# Do we show the intro window?
-showintro=true
+showintro=false
# Gui type to use
# Valid types: curses, panel
@@ -19,28 +19,6 @@ decay=3
columns=decay,name,type,wep,channel,packets,flags,ip,size
# What columns do we display for clients? Comma seperated.
clientcolumns=decay,type,mac,manuf,data,crypt,size,ip,signal,quality,noise
-# Does the GUI use sound?
-# NOT to be confused with "sound" option later, which is for the SERVER to make
-# noise on whatever host it's running on.
-sound=false
-# Path to sound player
-# soundplay=/usr/bin/play
-# Optional parameters to pass to the player
-# soundopts=--volume=.3
-# New network found
-# sound_new=/usr/share/kismet/wav/new_network.wav
-# Wepped new network
-# sound_new_wep=${prefix}/com/kismet/wav/new_wep_network.wav
-# Network traffic sound
-# sound_traffic=/usr/share/kismet/wav/traffic.wav
-# Network junk traffic found
-# sound_junktraffic=/usr/share/kismet/wav/junk_traffic.wav
-# GPS lock aquired sound
-# sound_gpslock=/usr/share/kismet/wav/foo.wav
-# GPS lock lost sound
-# sound_gpslost=/usr/share/kismet/wav/bar.wav
-# Alert sound
-# sound_alert=/usr/share/kismet/wav/alert.wav
# Do we auotmatically make a group for probed networks or do we show them
# amidst other networks?
@@ -51,27 +29,6 @@ autogroup_data=true
# Display battery status?
apm=false
-# Does the GUI talk to us with Festival?
-speech=false
-# Where is festival located for the GUI?
-festival=/usr/bin/festival
-# How do we speak? Valid options:
-# speech Normal speech
-# nato NATO spellings (alpha, bravo, charlie)
-# spell Spell the letters out (aye, bee, sea)
-speech_type=nato
-# speech_encrypted and speech_unencrypted - Speech templates
-# Similar to the logtemplate option, this lets you customize the speech output.
-# speech_encrypted is used for an encrypted network spoken string
-# speech_unencrypted is used for an unencrypted network spoken string
-#
-# %b is replaced by the BSSID (MAC) of the network
-# %s is replaced by the SSID (name) of the network
-# %c is replaced by the CHANNEL of the network
-# %r is replaced by the MAX RATE of the network
-speech_encrypted=New network detected, s.s.i.d. %s, channel %c, network encrypted.
-speech_unencrypted=New network detected, s.s.i.d. %s, channel %c, network open.
-
# Simple borders (use - and | instead of smooth vertical and horizontal
# lines. This is required on Zaurus, and might be needed elsewhere if your
# terminal doesn't display the border characters correctly.
diff --git a/package/kismet/patches/remove-sources.patch b/package/kismet/patches/100-remove_sources.patch
index 8bae67ba4..8bae67ba4 100644
--- a/package/kismet/patches/remove-sources.patch
+++ b/package/kismet/patches/100-remove_sources.patch
diff --git a/package/kismet/patches/uclibc++-fixes.patch b/package/kismet/patches/110-uclibc++_fixes.patch
index 995d5efed..4cf5a7b5b 100644
--- a/package/kismet/patches/uclibc++-fixes.patch
+++ b/package/kismet/patches/110-uclibc++_fixes.patch
@@ -27,4 +27,3 @@ diff -urN kismet-2005-04-R1.old/macaddr.h kismet-2005-04-R1.dev/macaddr.h
return (singleton_itr != op.singleton_itr) || (vector_itr != op.vector_itr);
}
-Binary files kismet-2005-04-R1.old/.macaddr.h.swp and kismet-2005-04-R1.dev/.macaddr.h.swp differ
diff --git a/package/kismet/patches/120-remove_sound.patch b/package/kismet/patches/120-remove_sound.patch
new file mode 100644
index 000000000..ca2737c50
--- /dev/null
+++ b/package/kismet/patches/120-remove_sound.patch
@@ -0,0 +1,1051 @@
+diff -urN kismet-2005-04-R1.old/Makefile.in kismet-2005-04-R1.dev/Makefile.in
+--- kismet-2005-04-R1.old/Makefile.in 2005-05-04 21:09:18.000000000 +0200
++++ kismet-2005-04-R1.dev/Makefile.in 2005-05-04 21:19:26.000000000 +0200
+@@ -39,7 +39,7 @@
+ DEPEND = .depend
+
+ # Objects
+-PSO = util.o ringbuf.o configfile.o speech.o ifcontrol.o iwcontrol.o packet.o \
++PSO = util.o ringbuf.o configfile.o ifcontrol.o iwcontrol.o packet.o \
+ pcapsource.o wtapfilesource.o \
+ dronesource.o packetsourcetracker.o kis_packsources.o \
+ wtapdump.o wtaplocaldump.o gpsdump.o airsnortdump.o fifodump.o \
+@@ -55,7 +55,7 @@
+ timetracker.o gpsd.o server_globals.o kismet_drone.o
+ DRONE = kismet_drone
+
+-NCO = util.o configfile.o speech.o manuf.o tcpclient.o \
++NCO = util.o configfile.o manuf.o tcpclient.o \
+ frontend.o cursesfront.o \
+ panelfront.o panelfront_display.o panelfront_input.o \
+ gpsd.o getopt.o kismet_client.o
+diff -urN kismet-2005-04-R1.old/kismet_client.cc kismet-2005-04-R1.dev/kismet_client.cc
+--- kismet-2005-04-R1.old/kismet_client.cc 2005-04-03 07:33:42.000000000 +0200
++++ kismet-2005-04-R1.dev/kismet_client.cc 2005-05-04 21:23:14.000000000 +0200
+@@ -28,7 +28,6 @@
+ #include "cursesfront.h"
+ #include "panelfront.h"
+ #include "configfile.h"
+-#include "speech.h"
+
+ #ifndef exec_name
+ char *exec_name;
+@@ -47,10 +46,6 @@
+ char *configfile;
+ char *uiconfigfile;
+ char *server = NULL;
+-int sound = -1;
+-int speech = -1;
+-int speech_encoding = 0;
+-string speech_sentence_encrypted, speech_sentence_unencrypted;
+ unsigned int metric = 0;
+ unsigned int reconnect = 0;
+
+@@ -58,20 +53,9 @@
+ string configdir, groupfile;
+ FILE *group_file = NULL;
+
+-// Pipe file descriptor pairs and fd's
+-int soundpair[2];
+-int speechpair[2];
+-pid_t soundpid = -1, speechpid = -1;
+-
+ // Catch our interrupt
+ void CatchShutdown(int sig) {
+
+- // Kill our sound players
+- if (soundpid > 0)
+- kill(soundpid, 9);
+- if (speechpid > 0)
+- kill(speechpid, 9);
+-
+ if (group_track) {
+ if ((group_file = fopen(groupfile.c_str(), "w")) == NULL) {
+ fprintf(stderr, "WARNING: Unable to open '%s' for writing, groups will not be saved.\n",
+@@ -115,215 +99,6 @@
+ exit(0);
+ }
+
+-// Subprocess sound handler
+-void SoundHandler(int *fds, const char *player, map<string, string> soundmap) {
+- int read_sock = fds[0];
+-
+- close(fds[1]);
+-
+- signal(SIGPIPE, PipeHandler);
+-
+- fd_set rset;
+-
+- char data[1024];
+-
+- pid_t sndpid = -1;
+- int harvested = 1;
+-
+- while (1) {
+- FD_ZERO(&rset);
+- FD_SET(read_sock, &rset);
+- char *end;
+-
+- memset(data, 0, 1024);
+-
+- if (harvested == 0) {
+- // We consider a wait error to be a sign that the child pid died
+- // so we flag it as harvested and keep on going
+- pid_t harvestpid = waitpid(sndpid, NULL, WNOHANG);
+- if (harvestpid == -1 || harvestpid == sndpid)
+- harvested = 1;
+- }
+-
+- struct timeval tim;
+- tim.tv_sec = 1;
+- tim.tv_usec = 0;
+-
+- if (select(read_sock + 1, &rset, NULL, NULL, &tim) < 0) {
+- if (errno != EINTR) {
+- exit(1);
+- }
+- }
+-
+- if (FD_ISSET(read_sock, &rset)) {
+- int ret;
+- ret = read(read_sock, data, 1024);
+-
+- // We'll die off if we get a read error, and we'll let kismet on the
+- // other side detact that it died
+- if (ret <= 0 && (errno != EAGAIN && errno != EPIPE))
+- exit(1);
+-
+- if ((end = strstr(data, "\n")) == NULL)
+- continue;
+-
+- end[0] = '\0';
+- }
+-
+- if (data[0] == '\0')
+- continue;
+-
+- // If we've harvested the process, spawn a new one and watch it
+- // instead. Otherwise, we just let go of the data we read
+- if (harvested == 1) {
+- // Only take the first line
+- char *nl;
+- if ((nl = strchr(data, '\n')) != NULL)
+- *nl = '\0';
+-
+- char snd[1024];
+-
+- if (soundmap.size() == 0)
+- snprintf(snd, 1024, "%s", data);
+- if (soundmap.find(data) != soundmap.end())
+- snprintf(snd, 1024, "%s", soundmap[data].c_str());
+- else
+- continue;
+-
+- char plr[1024];
+- snprintf(plr, 1024, "%s", player);
+-
+- harvested = 0;
+- if ((sndpid = fork()) == 0) {
+- // Suppress errors
+- int nulfd = open("/dev/null", O_RDWR);
+- dup2(nulfd, 1);
+- dup2(nulfd, 2);
+-
+- char * const echoarg[] = { plr, snd, NULL };
+- execve(echoarg[0], echoarg, NULL);
+- }
+- }
+-
+- data[0] = '\0';
+- }
+-}
+-
+-// Subprocess speech handler
+-void SpeechHandler(int *fds, const char *player) {
+- int read_sock = fds[0];
+- close(fds[1]);
+-
+- fd_set rset;
+-
+- char data[1024];
+-
+- pid_t sndpid = -1;
+- int harvested = 1;
+-
+- while (1) {
+- FD_ZERO(&rset);
+- FD_SET(read_sock, &rset);
+- //char *end;
+-
+- memset(data, 0, 1024);
+-
+- struct timeval tim;
+- tim.tv_sec = 1;
+- tim.tv_usec = 0;
+-
+- if (select(read_sock + 1, &rset, NULL, NULL, &tim) < 0) {
+- if (errno != EINTR) {
+- exit(1);
+- }
+- }
+-
+- if (harvested == 0) {
+- // We consider a wait error to be a sign that the child pid died
+- // so we flag it as harvested and keep on going
+- pid_t harvestpid = waitpid(sndpid, NULL, WNOHANG);
+- if (harvestpid == -1 || harvestpid == sndpid)
+- harvested = 1;
+- }
+-
+- if (FD_ISSET(read_sock, &rset)) {
+- int ret;
+- ret = read(read_sock, data, 1024);
+-
+- // We'll die off if we get a read error, and we'll let kismet on the
+- // other side detact that it died
+- if (ret <= 0 && (errno != EAGAIN && errno != EPIPE))
+- exit(1);
+-
+- data[ret] = '\0';
+-
+- }
+-
+- if (data[0] == '\0')
+- continue;
+-
+- // If we've harvested the process, spawn a new one and watch it
+- // instead. Otherwise, we just let go of the data we read
+- if (harvested == 1) {
+- harvested = 0;
+- if ((sndpid = fork()) == 0) {
+- // Only take the first line
+- char *nl;
+- if ((nl = strchr(data, '\n')) != NULL)
+- *nl = '\0';
+-
+- // Make sure it's shell-clean
+- MungeToShell(data, strlen(data));
+- char spk_call[1024];
+- snprintf(spk_call, 1024, "echo \"(SayText \\\"%s\\\")\" | %s >/dev/null 2>/dev/null",
+- data, player);
+-
+- system(spk_call);
+-
+- exit(0);
+- }
+- }
+-
+- data[0] = '\0';
+- }
+-}
+-
+-
+-int PlaySound(string in_sound) {
+-
+- char snd[1024];
+-
+- snprintf(snd, 1024, "%s\n", in_sound.c_str());
+-
+- if (write(soundpair[1], snd, strlen(snd)) < 0) {
+- char status[STATUS_MAX];
+- snprintf(status, STATUS_MAX,
+- "ERROR: Could not write to sound pipe. Stopping sound.");
+- gui->WriteStatus(status);
+-
+- return 0;
+- }
+-
+- return 1;
+-}
+-
+-int SayText(string in_text) {
+- char snd[1024];
+-
+- snprintf(snd, 1024, "%s\n", in_text.c_str());
+-
+- if (write(speechpair[1], snd, strlen(snd)) < 0) {
+- char status[STATUS_MAX];
+- snprintf(status, STATUS_MAX,
+- "ERROR: Could not write to speech pipe. Stopping speech.");
+- gui->WriteStatus(status);
+-
+- return 0;
+- }
+-
+- return 1;
+-}
+-
+ int main(int argc, char *argv[]) {
+ exec_name = argv[0];
+
+@@ -332,9 +107,6 @@
+
+ char *reqgui = NULL;
+
+- string sndplay;
+- const char *festival = NULL;
+-
+ char *columns = NULL;
+ char *clientcolumns = NULL;
+
+@@ -389,7 +161,6 @@
+ fprintf(stderr, "Using alternate UI config file: %s\n", uiconfigfile);
+ break;
+ case 'q':
+- sound = 0;
+ break;
+ case 'g':
+ reqgui = strdup(optarg);
+@@ -513,67 +284,6 @@
+ server = strdup(gui_conf->FetchOpt("host").c_str());
+ }
+
+- if (gui_conf->FetchOpt("sound") == "true" && sound == -1) {
+- if (gui_conf->FetchOpt("soundplay") != "") {
+- sndplay = gui_conf->FetchOpt("soundplay");
+- sound = 1;
+-
+- if (gui_conf->FetchOpt("soundopts") != "")
+- sndplay += " " + gui_conf->FetchOpt("soundopts");
+-
+- if (gui_conf->FetchOpt("sound_new") != "")
+- wav_map["new"] = gui_conf->FetchOpt("sound_new");
+- if (gui_conf->FetchOpt("sound_new_wep") != "")
+- wav_map["new_wep"] = gui_conf->FetchOpt("sound_new_wep");
+- if (gui_conf->FetchOpt("sound_traffic") != "")
+- wav_map["traffic"] = gui_conf->FetchOpt("sound_traffic");
+- if (gui_conf->FetchOpt("sound_junktraffic") != "")
+- wav_map["junktraffic"] = gui_conf->FetchOpt("sound_junktraffic");
+- if (gui_conf->FetchOpt("sound_gpslock") != "")
+- wav_map["gpslock"] = gui_conf->FetchOpt("sound_gpslock");
+- if (gui_conf->FetchOpt("sound_gpslost") != "")
+- wav_map["gpslost"] = gui_conf->FetchOpt("sound_gpslost");
+- if (gui_conf->FetchOpt("sound_alert") != "")
+- wav_map["alert"] = gui_conf->FetchOpt("sound_alert");
+-
+- } else {
+- fprintf(stderr, "ERROR: Sound alerts enabled but no sound playing binary specified.\n");
+- sound = 0;
+- }
+- } else if (sound == -1)
+- sound = 0;
+-
+- /* Added by Shaw Innes 17/2/02 */
+- if (gui_conf->FetchOpt("speech") == "true" && speech == -1) {
+- if (gui_conf->FetchOpt("festival") != "") {
+- festival = strdup(gui_conf->FetchOpt("festival").c_str());
+- speech = 1;
+-
+- string speechtype = gui_conf->FetchOpt("speech_type");
+-
+- if (!strcasecmp(speechtype.c_str(), "nato"))
+- speech_encoding = SPEECH_ENCODING_NATO;
+- else if (!strcasecmp(speechtype.c_str(), "spell"))
+- speech_encoding = SPEECH_ENCODING_SPELL;
+- else
+- speech_encoding = SPEECH_ENCODING_NORMAL;
+-
+- // Make sure we have encrypted text lines
+- if (gui_conf->FetchOpt("speech_encrypted") == "" || gui_conf->FetchOpt("speech_unencrypted") == "") {
+- fprintf(stderr, "ERROR: Speech request but speech_encrypted or speech_unencrypted line missing.\n");
+- speech = 0;
+- }
+-
+- speech_sentence_encrypted = gui_conf->FetchOpt("speech_encrypted");
+- speech_sentence_unencrypted = gui_conf->FetchOpt("speech_unencrypted");
+-
+- } else {
+- fprintf(stderr, "ERROR: Speech alerts enabled but no path to festival has been specified.\n");
+- speech = 0;
+- }
+- } else if (speech == -1)
+- speech = 0;
+-
+ if (gui_conf->FetchOpt("decay") != "") {
+ if (sscanf(gui_conf->FetchOpt("decay").c_str(), "%d", &decay) != 1) {
+ fprintf(stderr, "FATAL: Illegal config file value for decay.\n");
+@@ -631,45 +341,6 @@
+ }
+ }
+
+- // Fork and find the sound options
+- if (sound) {
+- if (pipe(soundpair) == -1) {
+- fprintf(stderr, "WARNING: Unable to create pipe for audio. Disabling sound.\n");
+- sound = 0;
+- } else {
+- soundpid = fork();
+-
+- if (soundpid < 0) {
+- fprintf(stderr, "WARNING: Unable to fork for audio. Disabling sound.\n");
+- sound = 0;
+- } else if (soundpid == 0) {
+- SoundHandler(soundpair, sndplay.c_str(), wav_map);
+- exit(0);
+- }
+-
+- close(soundpair[0]);
+- }
+- }
+-
+- if (speech) {
+- if (pipe(speechpair) == -1) {
+- fprintf(stderr, "WARNING: Unable to create pipe for speech. Disabling speech.\n");
+- speech = 0;
+- } else {
+- speechpid = fork();
+-
+- if (speechpid < 0) {
+- fprintf(stderr, "WARNING: Unable to fork for speech. Disabling speech.\n");
+- speech = 0;
+- } else if (speechpid == 0) {
+- SpeechHandler(speechpair, festival);
+- exit(0);
+- }
+-
+- close(speechpair[0]);
+- }
+- }
+-
+ if (kismet_serv.Connect(guiport, guihost) < 0) {
+ fprintf(stderr, "FATAL: Could not connect to %s:%d.\n", guihost, guiport);
+ CatchShutdown(-1);
+@@ -793,8 +464,6 @@
+
+ int num_networks = 0, num_packets = 0, num_noise = 0, num_dropped = 0;
+
+- time_t last_click = time(0);
+-
+ fd_set read_set;
+ FD_ZERO(&read_set);
+
+@@ -876,10 +545,6 @@
+ }
+
+ if (pollret != 0) {
+- if (pollret == CLIENT_ALERT)
+- if (sound == 1)
+- sound = PlaySound("alert");
+-
+ if (strlen(tcpcli->FetchStatus()) != 0) {
+ gui->WriteStatus(tcpcli->FetchStatus());
+ // gui->DrawDisplay();
+@@ -888,12 +553,8 @@
+ // The GPS only gets updated for the primary client
+ if (tcpcli == primary_client) {
+ if (tcpcli->FetchMode() == 0 && gpsmode != 0) {
+- if (sound == 1 && gpsmode != -1)
+- sound = PlaySound("gpslost");
+ gpsmode = 0;
+ } else if (tcpcli->FetchMode() != 0 && gpsmode == 0) {
+- if (sound == 1 && gpsmode != -1)
+- sound = PlaySound("gpslock");
+ gpsmode = 1;
+ }
+ }
+@@ -901,28 +562,6 @@
+ if (tcpcli->FetchDeltaNumNetworks() > 0) {
+ wireless_network *newnet = tcpcli->FetchLastNewNetwork();
+
+- if (sound == 1 && newnet != lastspoken) {
+- if (newnet->crypt_set &&
+- wav_map.find("new_wep") != wav_map.end())
+- sound = PlaySound("new_wep");
+- else
+- sound = PlaySound("new");
+- }
+-
+- if (speech == 1 && newnet != lastspoken) {
+- string text;
+-
+- if (newnet != NULL) {
+- if (newnet->crypt_set)
+- text = ExpandSpeechString(speech_sentence_encrypted, newnet, speech_encoding);
+- else
+- text = ExpandSpeechString(speech_sentence_unencrypted, newnet, speech_encoding);
+-
+- speech = SayText(text.c_str());
+- }
+- }
+-
+- lastspoken = newnet;
+ }
+
+ num_networks += tcpcli->FetchNumNetworks();
+@@ -930,17 +569,6 @@
+ num_noise += tcpcli->FetchNumNoise();
+ num_dropped += tcpcli->FetchNumDropped();
+
+- if (tcpcli->FetchDeltaNumPackets() != 0) {
+- if (time(0) - last_click >= decay && sound == 1) {
+- if (tcpcli->FetchDeltaNumPackets() > tcpcli->FetchDeltaNumDropped()) {
+- sound = PlaySound("traffic");
+- } else {
+- sound = PlaySound("junktraffic");
+- }
+-
+- last_click = time(0);
+- }
+- }
+ }
+ }
+ } else {
+diff -urN kismet-2005-04-R1.old/kismet_server.cc kismet-2005-04-R1.dev/kismet_server.cc
+--- kismet-2005-04-R1.old/kismet_server.cc 2005-05-04 21:09:18.000000000 +0200
++++ kismet-2005-04-R1.dev/kismet_server.cc 2005-05-04 21:23:01.000000000 +0200
+@@ -56,7 +56,6 @@
+ #include "timetracker.h"
+ #include "alertracker.h"
+
+-#include "speech.h"
+ #include "tcpserver.h"
+ #include "server_globals.h"
+ #include "kismet_server.h"
+@@ -98,7 +97,6 @@
+
+ FifoDumpFile fifodump;
+ TcpServer ui_server;
+-int sound = -1;
+ packet_info last_info;
+ int decay;
+ channel_power channel_graph[CHANNEL_MAX];
+@@ -112,10 +110,8 @@
+ macmap<wep_key_info *> bssid_wep_map;
+
+ // Pipe file descriptor pairs and fd's
+-int soundpair[2];
+-int speechpair[2];
+ int chanpair[2];
+-pid_t soundpid = -1, speechpid = -1, chanpid = -1;
++pid_t chanpid = -1;
+
+ // Past alerts
+ unsigned int max_alerts = 50;
+@@ -177,16 +173,6 @@
+ int tcpport = -1;
+ int tcpmax;
+
+-//const char *sndplay = NULL;
+-string sndplay;
+-
+-const char *festival = NULL;
+-int speech = -1;
+-int speech_encoding = 0;
+-string speech_sentence_encrypted, speech_sentence_unencrypted;
+-
+-map<string, string> wav_map;
+-
+ int beacon_log = 1;
+ int phy_log = 1;
+ int mangle_log = 0;
+@@ -349,12 +335,6 @@
+
+ #endif
+
+- // Kill our sound players
+- if (soundpid > 0)
+- kill(soundpid, 9);
+- if (speechpid > 0)
+- kill(speechpid, 9);
+-
+ // Shut down the packet sources
+ sourcetracker.CloseSources();
+
+@@ -365,227 +345,10 @@
+ exit(0);
+ }
+
+-// Subprocess sound handler
+-void SoundHandler(int *fds, const char *player, map<string, string> soundmap) {
+- int read_sock = fds[0];
+- close(fds[1]);
+-
+- fd_set rset;
+-
+- char data[1024];
+-
+- pid_t sndpid = -1;
+- int harvested = 1;
+-
+- while (1) {
+- FD_ZERO(&rset);
+- FD_SET(read_sock, &rset);
+- char *end;
+-
+- memset(data, 0, 1024);
+-
+- struct timeval tm;
+- tm.tv_sec = 1;
+- tm.tv_usec = 0;
+-
+- if (select(read_sock + 1, &rset, NULL, NULL, &tm) < 0) {
+- if (errno != EINTR) {
+- exit(1);
+- }
+- }
+-
+- if (harvested == 0) {
+- // We consider a wait error to be a sign that the child pid died
+- // so we flag it as harvested and keep on going
+- pid_t harvestpid = waitpid(sndpid, NULL, WNOHANG);
+- if (harvestpid == -1 || harvestpid == sndpid)
+- harvested = 1;
+- }
+-
+- if (FD_ISSET(read_sock, &rset)) {
+- int ret;
+- ret = read(read_sock, data, 1024);
+-
+- // We'll die off if we get a read error, and we'll let kismet on the
+- // other side detact that it died
+- if (ret <= 0 && (errno != EAGAIN && errno != EPIPE))
+- exit(1);
+-
+- if ((end = strstr(data, "\n")) == NULL)
+- continue;
+-
+- end[0] = '\0';
+- }
+-
+- if (data[0] == '\0')
+- continue;
+-
+-
+- // If we've harvested the process, spawn a new one and watch it
+- // instead. Otherwise, we just let go of the data we read
+- if (harvested == 1) {
+- // Only take the first line
+- char *nl;
+- if ((nl = strchr(data, '\n')) != NULL)
+- *nl = '\0';
+-
+- // Make sure it's shell-clean
+-
+- char snd[1024];
+-
+- if (soundmap.size() == 0)
+- snprintf(snd, 1024, "%s", data);
+- if (soundmap.find(data) != soundmap.end())
+- snprintf(snd, 1024, "%s", soundmap[data].c_str());
+- else
+- continue;
+-
+- char plr[1024];
+- snprintf(plr, 1024, "%s", player);
+-
+- harvested = 0;
+- if ((sndpid = fork()) == 0) {
+- // Suppress errors
+- if (silent) {
+- int nulfd = open("/dev/null", O_RDWR);
+- dup2(nulfd, 1);
+- dup2(nulfd, 2);
+- }
+-
+- char * const echoarg[] = { plr, snd, NULL };
+- execve(echoarg[0], echoarg, NULL);
+- }
+- }
+- data[0] = '\0';
+- }
+-}
+-
+-// Subprocess speech handler
+-void SpeechHandler(int *fds, const char *player) {
+- int read_sock = fds[0];
+- close(fds[1]);
+-
+- fd_set rset;
+-
+- char data[1024];
+-
+- pid_t sndpid = -1;
+- int harvested = 1;
+-
+- while (1) {
+- FD_ZERO(&rset);
+- FD_SET(read_sock, &rset);
+- //char *end;
+-
+- memset(data, 0, 1024);
+-
+- if (harvested == 0) {
+- // We consider a wait error to be a sign that the child pid died
+- // so we flag it as harvested and keep on going
+- pid_t harvestpid = waitpid(sndpid, NULL, WNOHANG);
+- if (harvestpid == -1 || harvestpid == sndpid)
+- harvested = 1;
+- }
+-
+- struct timeval tm;
+- tm.tv_sec = 1;
+- tm.tv_usec = 0;
+-
+- if (select(read_sock + 1, &rset, NULL, NULL, &tm) < 0) {
+- if (errno != EINTR) {
+- exit(1);
+- }
+- }
+-
+- if (FD_ISSET(read_sock, &rset)) {
+- int ret;
+- ret = read(read_sock, data, 1024);
+-
+- // We'll die off if we get a read error, and we'll let kismet on the
+- // other side detact that it died
+- if (ret <= 0 && (errno != EAGAIN && errno != EPIPE))
+- exit(1);
+-
+- data[ret] = '\0';
+- }
+-
+- if (data[0] == '\0')
+- continue;
+-
+- // If we've harvested the process, spawn a new one and watch it
+- // instead. Otherwise, we just let go of the data we read
+- if (harvested == 1) {
+- harvested = 0;
+- if ((sndpid = fork()) == 0) {
+- // Only take the first line
+- char *nl;
+- if ((nl = strchr(data, '\n')) != NULL)
+- *nl = '\0';
+-
+- // Make sure it's shell-clean
+- MungeToShell(data, strlen(data));
+- char spk_call[1024];
+- snprintf(spk_call, 1024, "echo \"(SayText \\\"%s\\\")\" | %s >/dev/null 2>/dev/null",
+- data, player);
+- system(spk_call);
+-
+- exit(0);
+- }
+- }
+-
+- data[0] = '\0';
+- }
+-}
+-
+-
+-// Fork and run a system call to play a sound
+-int PlaySound(string in_sound) {
+-
+- char snd[1024];
+-
+- snprintf(snd, 1024, "%s\n", in_sound.c_str());
+-
+- if (write(soundpair[1], snd, strlen(snd)) < 0) {
+- char status[STATUS_MAX];
+- if (!silent)
+- fprintf(stderr, "ERROR: Write error, closing sound pipe.\n");
+- snprintf(status, STATUS_MAX, "ERROR: Write error on sound pipe, closing sound connection");
+- NetWriteStatus(status);
+-
+- return 0;
+- }
+-
+- return 1;
+-}
+-
+-int SayText(string in_text) {
+-
+- char snd[1024];
+-
+- snprintf(snd, 1024, "%s\n", in_text.c_str());
+- MungeToShell(snd, 1024);
+-
+- if (write(speechpair[1], snd, strlen(snd)) < 0) {
+- char status[STATUS_MAX];
+- if (!silent)
+- fprintf(stderr, "ERROR: Write error, closing speech pipe.\n");
+- snprintf(status, STATUS_MAX, "ERROR: Write error on speech pipe, closing speech connection");
+- NetWriteStatus(status);
+-
+- return 0;
+- }
+-
+- return 1;
+-}
+-
+ void KisLocalAlert(const char *in_text) {
+ time_t now = time(0);
+ if (!silent)
+ fprintf(stderr, "ALERT %.24s %s\n", ctime(&now), in_text);
+-
+- if (sound == 1)
+- sound = PlaySound("alert");
+-
+ }
+
+ void KisLocalStatus(const char *in_status) {
+@@ -842,15 +605,11 @@
+ if (gpsret == 0 && gpsmode != 0) {
+ if (!silent || NetWriteStatus("Lost GPS signal.") == 0)
+ fprintf(stderr, "Lost GPS signal.\n");
+- if (sound == 1)
+- sound = PlaySound("gpslost");
+
+ gpsmode = 0;
+ } else if (gpsret != 0 && gpsmode == 0) {
+ if (!silent || NetWriteStatus("Acquired GPS signal.") == 0)
+ fprintf(stderr, "Acquired GPS signal.\n");
+- if (sound == 1)
+- sound = PlaySound("gpslock");
+
+ gpsmode = 1;
+ }
+@@ -1533,69 +1292,6 @@
+ legal_ipblock_vec.push_back(ipb);
+ }
+
+- // Process sound stuff
+- if (conf->FetchOpt("sound") == "true" && sound == -1) {
+- if (conf->FetchOpt("soundplay") != "") {
+- sndplay = conf->FetchOpt("soundplay");
+-
+- if (conf->FetchOpt("soundopts") != "")
+- sndplay += " " + conf->FetchOpt("soundopts");
+-
+- sound = 1;
+-
+- if (conf->FetchOpt("sound_new") != "")
+- wav_map["new"] = conf->FetchOpt("sound_new");
+- if (conf->FetchOpt("sound_new_wep") != "")
+- wav_map["new_wep"] = conf->FetchOpt("sound_new_wep");
+- if (conf->FetchOpt("sound_traffic") != "")
+- wav_map["traffic"] = conf->FetchOpt("sound_traffic");
+- if (conf->FetchOpt("sound_junktraffic") != "")
+- wav_map["junktraffic"] = conf->FetchOpt("sound_traffic");
+- if (conf->FetchOpt("sound_gpslock") != "")
+- wav_map["gpslock"] = conf->FetchOpt("sound_gpslock");
+- if (conf->FetchOpt("sound_gpslost") != "")
+- wav_map["gpslost"] = conf->FetchOpt("sound_gpslost");
+- if (conf->FetchOpt("sound_alert") != "")
+- wav_map["alert"] = conf->FetchOpt("sound_alert");
+-
+- } else {
+- fprintf(stderr, "ERROR: Sound alerts enabled but no sound playing binary specified.\n");
+- sound = 0;
+- }
+- } else if (sound == -1)
+- sound = 0;
+-
+- /* Added by Shaw Innes 17/2/02 */
+- /* Modified by Andrew Etter 15/9/02 */
+- if (conf->FetchOpt("speech") == "true" && speech == -1) {
+- if (conf->FetchOpt("festival") != "") {
+- festival = strdup(conf->FetchOpt("festival").c_str());
+- speech = 1;
+-
+- string speechtype = conf->FetchOpt("speech_type");
+-
+- if (!strcasecmp(speechtype.c_str(), "nato"))
+- speech_encoding = SPEECH_ENCODING_NATO;
+- else if (!strcasecmp(speechtype.c_str(), "spell"))
+- speech_encoding = SPEECH_ENCODING_SPELL;
+- else
+- speech_encoding = SPEECH_ENCODING_NORMAL;
+-
+- // Make sure we have encrypted text lines
+- if (conf->FetchOpt("speech_encrypted") == "" || conf->FetchOpt("speech_unencrypted") == "") {
+- fprintf(stderr, "ERROR: Speech request but speech_encrypted or speech_unencrypted line missing.\n");
+- speech = 0;
+- }
+-
+- speech_sentence_encrypted = conf->FetchOpt("speech_encrypted");
+- speech_sentence_unencrypted = conf->FetchOpt("speech_unencrypted");
+- } else {
+- fprintf(stderr, "ERROR: Speech alerts enabled but no path to festival has been specified.\n");
+- speech = 0;
+- }
+- } else if (speech == -1)
+- speech = 0;
+-
+ if (conf->FetchOpt("writeinterval") != "") {
+ if (sscanf(conf->FetchOpt("writeinterval").c_str(), "%d", &datainterval) != 1) {
+ fprintf(stderr, "FATAL: Illegal config file value for data interval.\n");
+@@ -1615,45 +1311,6 @@
+ fprintf(stderr, "WARNING: No client_manuf file specified. Client manufacturers will not be detected.\n");
+ }
+
+- // Fork and find the sound options
+- if (sound) {
+- if (pipe(soundpair) == -1) {
+- fprintf(stderr, "WARNING: Unable to create pipe for audio. Disabling sound.\n");
+- sound = 0;
+- } else {
+- soundpid = fork();
+-
+- if (soundpid < 0) {
+- fprintf(stderr, "WARNING: Unable to fork for audio. Disabling sound.\n");
+- sound = 0;
+- } else if (soundpid == 0) {
+- SoundHandler(soundpair, sndplay.c_str(), wav_map);
+- exit(0);
+- }
+-
+- close(soundpair[0]);
+- }
+- }
+-
+- if (speech) {
+- if (pipe(speechpair) == -1) {
+- fprintf(stderr, "WARNING: Unable to create pipe for speech. Disabling speech.\n");
+- speech = 0;
+- } else {
+- speechpid = fork();
+-
+- if (speechpid < 0) {
+- fprintf(stderr, "WARNING: Unable to fork for speech. Disabling speech.\n");
+- speech = 0;
+- } else if (speechpid == 0) {
+- SpeechHandler(speechpair, festival);
+- exit(0);
+- }
+-
+- close(speechpair[0]);
+- }
+- }
+-
+ // Grab the filtering
+ string filter_bit;
+
+@@ -2172,7 +1829,6 @@
+ break;
+ case 'q':
+ // Quiet
+- sound = 0;
+ break;
+ case 'v':
+ // version
+@@ -2781,7 +2437,6 @@
+ snprintf(status, 1024, "%s", TIMESTAMP);
+ kdata.timestamp = status;
+
+- time_t last_click = 0;
+ int num_networks = 0, num_packets = 0, num_noise = 0, num_dropped = 0;
+
+
+@@ -2944,38 +2599,9 @@
+
+ tracker.ProcessPacket(info);
+
+- if (tracker.FetchNumNetworks() > num_networks) {
+- if (sound == 1)
+- if (info.wep && wav_map.find("new_wep") != wav_map.end())
+- sound = PlaySound("new_wep");
+- else
+- sound = PlaySound("new");
+- if (speech == 1) {
+- string text;
+-
+- if (info.wep)
+- text = ExpandSpeechString(speech_sentence_encrypted, &info,
+- speech_encoding);
+- else
+- text = ExpandSpeechString(speech_sentence_unencrypted,
+- &info, speech_encoding);
+-
+- speech = SayText(MungeToShell(text).c_str());
+- }
+- }
+ num_networks = tracker.FetchNumNetworks();
+
+ if (tracker.FetchNumPackets() != num_packets) {
+- if (cur_time - last_click >= decay && sound == 1) {
+- if (tracker.FetchNumPackets() - num_packets >
+- tracker.FetchNumDropped() + localdropnum - num_dropped) {
+- sound = PlaySound("traffic");
+- } else {
+- sound = PlaySound("junktraffic");
+- }
+-
+- last_click = cur_time;
+- }
+
+ num_packets = tracker.FetchNumPackets();
+ num_noise = tracker.FetchNumNoise();
+diff -urN kismet-2005-04-R1.old/kismet_server.h kismet-2005-04-R1.dev/kismet_server.h
+--- kismet-2005-04-R1.old/kismet_server.h 2005-04-03 07:33:42.000000000 +0200
++++ kismet-2005-04-R1.dev/kismet_server.h 2005-05-04 21:17:50.000000000 +0200
+@@ -33,10 +33,6 @@
+ void handle_command(TcpServer *tcps, client_command *cc);
+ int NetWriteStatus(const char *in_status);
+ void NetWriteInfo();
+-int SayText(string in_text);
+-int PlaySound(string in_sound);
+-void SpeechHandler(int *fds, const char *player);
+-void SoundHandler(int *fds, const char *player, map<string, string> soundmap);
+ void ProtocolAlertEnable(int in_fd);
+ void ProtocolNetworkEnable(int in_fd);
+ void ProtocolClientEnable(int in_fd);
+diff -urN kismet-2005-04-R1.old/panelfront.cc kismet-2005-04-R1.dev/panelfront.cc
+--- kismet-2005-04-R1.old/panelfront.cc 2005-04-03 07:33:42.000000000 +0200
++++ kismet-2005-04-R1.dev/panelfront.cc 2005-05-04 21:19:03.000000000 +0200
+@@ -420,8 +420,6 @@
+
+ //cutoff = 0;
+
+- muted = 0;
+-
+ // Push blanks into the RRD history vector
+ packet_history.reserve(60 * 5);
+ for (unsigned int x = 0; x < (60 * 5); x++)
+@@ -678,8 +676,6 @@
+
+ zoomed = 0;
+
+- muted = 0;
+-
+ if (colorkilled)
+ WriteStatus("Terminal cannot support colors, turning off color options.");
+
+diff -urN kismet-2005-04-R1.old/panelfront.h kismet-2005-04-R1.dev/panelfront.h
+--- kismet-2005-04-R1.old/panelfront.h 2005-04-03 07:33:42.000000000 +0200
++++ kismet-2005-04-R1.dev/panelfront.h 2005-05-04 21:18:48.000000000 +0200
+@@ -81,8 +81,6 @@
+ extern char *KismetIntroText[];
+
+ // These are in the kismet_curses.cc main code
+-extern int sound;
+-extern int speech;
+ extern unsigned int metric;
+
+ class PanelFront : public Frontend {
+@@ -383,10 +381,6 @@
+
+ int hsize, vsize;
+
+- int old_sound;
+- int old_speech;
+- int muted;
+-
+ vector<int> packet_history;
+
+ float lat, lon, spd, alt, heading;
+diff -urN kismet-2005-04-R1.old/panelfront_input.cc kismet-2005-04-R1.dev/panelfront_input.cc
+--- kismet-2005-04-R1.old/panelfront_input.cc 2005-04-03 07:33:42.000000000 +0200
++++ kismet-2005-04-R1.dev/panelfront_input.cc 2005-05-04 21:18:19.000000000 +0200
+@@ -639,21 +639,6 @@
+ }
+
+ void PanelFront::MuteToggle() {
+- if (muted) {
+- speech = old_speech;
+- sound = old_sound;
+- muted = 0;
+- WriteStatus("Restoring sound");
+- } else if (sound != 0 || speech != 0) {
+- old_speech = speech;
+- old_sound = sound;
+- sound = 0;
+- speech = 0;
+- muted = 1;
+- WriteStatus("Muting sound");
+- } else if (sound == 0 && speech == 0) {
+- WriteStatus("Sound not enabled.");
+- }
+ }
+
+ int PanelFront::AlertInput(void *in_window, int in_chr) {