aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2009-03-01 22:40:15 +0000
committerSam Leffler <sam@FreeBSD.org>2009-03-01 22:40:15 +0000
commit6cb83b2c027206298153773f39b17f2f52ab99e0 (patch)
tree0ae4cd9686c6da9b4d0d3546f913b11772bf8120 /wpa_supplicant
parentb2cbddbd4361766d55c5f9dae81f71f44577bb6a (diff)
downloadsrc-6cb83b2c027206298153773f39b17f2f52ab99e0.tar.gz
src-6cb83b2c027206298153773f39b17f2f52ab99e0.zip
remove unused bits
Notes
Notes: svn path=/vendor/wpa/dist/; revision=189254
Diffstat (limited to 'wpa_supplicant')
-rw-r--r--wpa_supplicant/Makefile1246
-rw-r--r--wpa_supplicant/README-Windows.txt450
-rw-r--r--wpa_supplicant/config_winreg.c980
-rw-r--r--wpa_supplicant/ctrl_iface_named_pipe.c835
-rw-r--r--wpa_supplicant/main_none.c46
-rw-r--r--wpa_supplicant/main_symbian.cpp48
-rw-r--r--wpa_supplicant/main_winmain.c84
-rw-r--r--wpa_supplicant/main_winsvc.c464
-rw-r--r--wpa_supplicant/nmake.mak228
-rw-r--r--wpa_supplicant/symbian/README.symbian24
-rw-r--r--wpa_supplicant/symbian/bld.inf8
-rw-r--r--wpa_supplicant/symbian/wpa_supplicant.mmp38
-rwxr-xr-xwpa_supplicant/vs2005/eapol_test/eapol_test.vcproj425
-rwxr-xr-xwpa_supplicant/vs2005/win_if_list/win_if_list.vcproj203
-rwxr-xr-xwpa_supplicant/vs2005/wpa_cli/wpa_cli.vcproj215
-rwxr-xr-xwpa_supplicant/vs2005/wpa_passphrase/wpa_passphrase.vcproj220
-rwxr-xr-xwpa_supplicant/vs2005/wpa_supplicant.sln52
-rwxr-xr-xwpa_supplicant/vs2005/wpa_supplicant/wpa_supplicant.vcproj421
-rwxr-xr-xwpa_supplicant/vs2005/wpasvc/wpasvc.vcproj421
-rwxr-xr-xwpa_supplicant/win_example.reg42
-rw-r--r--wpa_supplicant/win_if_list.c179
-rw-r--r--wpa_supplicant/wpa_gui-qt4/.gitignore6
-rw-r--r--wpa_supplicant/wpa_gui-qt4/addinterface.cpp245
-rw-r--r--wpa_supplicant/wpa_gui-qt4/addinterface.h45
-rw-r--r--wpa_supplicant/wpa_gui-qt4/eventhistory.cpp130
-rw-r--r--wpa_supplicant/wpa_gui-qt4/eventhistory.h63
-rw-r--r--wpa_supplicant/wpa_gui-qt4/eventhistory.ui61
-rw-r--r--wpa_supplicant/wpa_gui-qt4/icons.qrc5
-rw-r--r--wpa_supplicant/wpa_gui-qt4/icons/Makefile27
-rw-r--r--wpa_supplicant/wpa_gui-qt4/icons/README7
-rw-r--r--wpa_supplicant/wpa_gui-qt4/icons/wpa_gui.svg256
-rw-r--r--wpa_supplicant/wpa_gui-qt4/icons_png.qrc5
-rw-r--r--wpa_supplicant/wpa_gui-qt4/main.cpp66
-rw-r--r--wpa_supplicant/wpa_gui-qt4/networkconfig.cpp823
-rw-r--r--wpa_supplicant/wpa_gui-qt4/networkconfig.h61
-rw-r--r--wpa_supplicant/wpa_gui-qt4/networkconfig.ui425
-rw-r--r--wpa_supplicant/wpa_gui-qt4/scanresults.cpp144
-rw-r--r--wpa_supplicant/wpa_gui-qt4/scanresults.h46
-rw-r--r--wpa_supplicant/wpa_gui-qt4/scanresults.ui94
-rw-r--r--wpa_supplicant/wpa_gui-qt4/userdatarequest.cpp100
-rw-r--r--wpa_supplicant/wpa_gui-qt4/userdatarequest.h46
-rw-r--r--wpa_supplicant/wpa_gui-qt4/userdatarequest.ui109
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpa_gui.desktop10
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpa_gui.pro62
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpagui.cpp1699
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpagui.h145
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpagui.ui517
-rw-r--r--wpa_supplicant/wpa_gui-qt4/wpamsg.h41
-rw-r--r--wpa_supplicant/wpa_gui/.gitignore5
-rw-r--r--wpa_supplicant/wpa_gui/eventhistory.ui125
-rw-r--r--wpa_supplicant/wpa_gui/eventhistory.ui.h41
-rw-r--r--wpa_supplicant/wpa_gui/main.cpp30
-rw-r--r--wpa_supplicant/wpa_gui/networkconfig.ui475
-rw-r--r--wpa_supplicant/wpa_gui/networkconfig.ui.h552
-rw-r--r--wpa_supplicant/wpa_gui/scanresults.ui179
-rw-r--r--wpa_supplicant/wpa_gui/scanresults.ui.h101
-rwxr-xr-xwpa_supplicant/wpa_gui/setup-mingw-cross-compiling11
-rw-r--r--wpa_supplicant/wpa_gui/userdatarequest.ui163
-rw-r--r--wpa_supplicant/wpa_gui/userdatarequest.ui.h72
-rw-r--r--wpa_supplicant/wpa_gui/wpa_gui.pro50
-rw-r--r--wpa_supplicant/wpa_gui/wpagui.ui471
-rw-r--r--wpa_supplicant/wpa_gui/wpagui.ui.h730
-rw-r--r--wpa_supplicant/wpa_gui/wpamsg.h34
63 files changed, 0 insertions, 14906 deletions
diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
deleted file mode 100644
index 0a50ceef0b97..000000000000
--- a/wpa_supplicant/Makefile
+++ /dev/null
@@ -1,1246 +0,0 @@
-ifndef CC
-CC=gcc
-endif
-
-ifndef CFLAGS
-CFLAGS = -MMD -O2 -Wall -g
-endif
-
-export LIBDIR ?= /usr/local/lib/
-export BINDIR ?= /usr/local/sbin/
-
-CFLAGS += -I../src
-CFLAGS += -I../src/crypto
-CFLAGS += -I../src/utils
-CFLAGS += -I../src/common
-CFLAGS += -I../src/rsn_supp
-
-ALL=wpa_supplicant wpa_passphrase wpa_cli
-
-all: verify_config $(ALL) dynamic_eap_methods
-
-verify_config:
- @if [ ! -r .config ]; then \
- echo 'Building wpa_supplicant requires a configuration file'; \
- echo '(.config). See README for more instructions. You can'; \
- echo 'run "cp defconfig .config" to create an example'; \
- echo 'configuration.'; \
- exit 1; \
- fi
-
-mkconfig:
- @if [ -e .config ]; then \
- echo '.config exists - did not replace it'; \
- exit 1; \
- fi
- echo CONFIG_DRIVER_HOSTAP=y >> .config
- echo CONFIG_DRIVER_WEXT=y >> .config
- echo CONFIG_WIRELESS_EXTENSION=y >> .config
-
-install: all
- mkdir -p $(DESTDIR)$(BINDIR)
- for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done
- $(MAKE) -C ../src install
-
-OBJS = config.o
-OBJS += ../src/utils/common.o
-OBJS += ../src/utils/wpa_debug.o
-OBJS += ../src/utils/wpabuf.o
-OBJS += ../src/crypto/md5.o
-OBJS += ../src/crypto/rc4.o
-OBJS += ../src/crypto/md4.o
-OBJS += ../src/crypto/sha1.o
-OBJS += ../src/crypto/des.o
-OBJS_p = wpa_passphrase.o
-OBJS_p += ../src/utils/common.o
-OBJS_p += ../src/utils/wpa_debug.o
-OBJS_p += ../src/crypto/md5.o
-OBJS_p += ../src/crypto/md4.o
-OBJS_p += ../src/crypto/sha1.o
-OBJS_p += ../src/crypto/des.o
-OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
-
--include .config
-
-ifndef CONFIG_OS
-ifdef CONFIG_NATIVE_WINDOWS
-CONFIG_OS=win32
-else
-CONFIG_OS=unix
-endif
-endif
-
-ifeq ($(CONFIG_OS), internal)
-CFLAGS += -DOS_NO_C_LIB_DEFINES
-endif
-
-OBJS += ../src/utils/os_$(CONFIG_OS).o
-OBJS_p += ../src/utils/os_$(CONFIG_OS).o
-OBJS_c += ../src/utils/os_$(CONFIG_OS).o
-
-ifndef CONFIG_ELOOP
-CONFIG_ELOOP=eloop
-endif
-OBJS += ../src/utils/$(CONFIG_ELOOP).o
-
-
-ifdef CONFIG_EAPOL_TEST
-CFLAGS += -Werror -DEAPOL_TEST
-endif
-
-ifndef CONFIG_BACKEND
-CONFIG_BACKEND=file
-endif
-
-ifeq ($(CONFIG_BACKEND), file)
-OBJS += config_file.o
-ifndef CONFIG_NO_CONFIG_BLOBS
-NEED_BASE64=y
-endif
-CFLAGS += -DCONFIG_BACKEND_FILE
-endif
-
-ifeq ($(CONFIG_BACKEND), winreg)
-OBJS += config_winreg.o
-endif
-
-ifeq ($(CONFIG_BACKEND), none)
-OBJS += config_none.o
-endif
-
-ifdef CONFIG_NO_CONFIG_WRITE
-CFLAGS += -DCONFIG_NO_CONFIG_WRITE
-endif
-
-ifdef CONFIG_NO_CONFIG_BLOBS
-CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
-endif
-
-ifdef CONFIG_NO_SCAN_PROCESSING
-CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
-endif
-
-ifdef CONFIG_DRIVER_HOSTAP
-CFLAGS += -DCONFIG_DRIVER_HOSTAP
-OBJS_d += ../src/drivers/driver_hostap.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_WEXT
-CFLAGS += -DCONFIG_DRIVER_WEXT
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_NL80211
-CFLAGS += -DCONFIG_DRIVER_NL80211
-OBJS_d += ../src/drivers/driver_nl80211.o
-LIBS += -lnl
-ifdef CONFIG_CLIENT_MLME
-OBJS_d += ../src/drivers/radiotap.o
-endif
-endif
-
-ifdef CONFIG_DRIVER_PRISM54
-CFLAGS += -DCONFIG_DRIVER_PRISM54
-OBJS_d += ../src/drivers/driver_prism54.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_HERMES
-CFLAGS += -DCONFIG_DRIVER_HERMES
-OBJS_d += ../src/drivers/driver_hermes.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_MADWIFI
-CFLAGS += -DCONFIG_DRIVER_MADWIFI
-OBJS_d += ../src/drivers/driver_madwifi.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_ATMEL
-CFLAGS += -DCONFIG_DRIVER_ATMEL
-OBJS_d += ../src/drivers/driver_atmel.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_NDISWRAPPER
-CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER
-OBJS_d += ../src/drivers/driver_ndiswrapper.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_RALINK
-CFLAGS += -DCONFIG_DRIVER_RALINK
-OBJS_d += ../src/drivers/driver_ralink.o
-endif
-
-ifdef CONFIG_DRIVER_BROADCOM
-CFLAGS += -DCONFIG_DRIVER_BROADCOM
-OBJS_d += ../src/drivers/driver_broadcom.o
-endif
-
-ifdef CONFIG_DRIVER_IPW
-CFLAGS += -DCONFIG_DRIVER_IPW
-OBJS_d += ../src/drivers/driver_ipw.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_BSD
-CFLAGS += -DCONFIG_DRIVER_BSD
-OBJS_d += ../src/drivers/driver_bsd.o
-ifndef CONFIG_L2_PACKET
-CONFIG_L2_PACKET=freebsd
-endif
-endif
-
-ifdef CONFIG_DRIVER_NDIS
-CFLAGS += -DCONFIG_DRIVER_NDIS
-OBJS_d += ../src/drivers/driver_ndis.o
-ifdef CONFIG_NDIS_EVENTS_INTEGRATED
-OBJS_d += ../src/drivers/driver_ndis_.o
-endif
-ifndef CONFIG_L2_PACKET
-CONFIG_L2_PACKET=pcap
-endif
-CONFIG_WINPCAP=y
-ifdef CONFIG_USE_NDISUIO
-CFLAGS += -DCONFIG_USE_NDISUIO
-endif
-endif
-
-ifdef CONFIG_DRIVER_WIRED
-CFLAGS += -DCONFIG_DRIVER_WIRED
-OBJS_d += ../src/drivers/driver_wired.o
-endif
-
-ifdef CONFIG_DRIVER_TEST
-CFLAGS += -DCONFIG_DRIVER_TEST
-OBJS_d += ../src/drivers/driver_test.o
-endif
-
-ifdef CONFIG_DRIVER_OSX
-CFLAGS += -DCONFIG_DRIVER_OSX
-OBJS_d += ../src/drivers/driver_osx.o
-LDFLAGS += -framework CoreFoundation
-LDFLAGS += -F/System/Library/PrivateFrameworks -framework Apple80211
-endif
-
-ifdef CONFIG_DRIVER_PS3
-CFLAGS += -DCONFIG_DRIVER_PS3 -m64
-OBJS_d += ../src/drivers/driver_ps3.o
-LDFLAGS += -m64
-endif
-
-ifdef CONFIG_DRIVER_IPHONE
-CFLAGS += -DCONFIG_DRIVER_IPHONE
-OBJS_d += ../src/drivers/driver_iphone.o
-OBJS_d += ../src/drivers/MobileApple80211.o
-LIBS += -framework CoreFoundation
-endif
-
-ifdef CONFIG_DRIVER_ROBOSWITCH
-CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH
-OBJS_d += ../src/drivers/driver_roboswitch.o
-endif
-
-ifndef CONFIG_L2_PACKET
-CONFIG_L2_PACKET=linux
-endif
-
-OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
-
-ifeq ($(CONFIG_L2_PACKET), pcap)
-ifdef CONFIG_WINPCAP
-CFLAGS += -DCONFIG_WINPCAP
-LIBS += -lwpcap -lpacket
-LIBS_w += -lwpcap
-else
-LIBS += -ldnet -lpcap
-endif
-endif
-
-ifeq ($(CONFIG_L2_PACKET), winpcap)
-LIBS += -lwpcap -lpacket
-LIBS_w += -lwpcap
-endif
-
-ifeq ($(CONFIG_L2_PACKET), freebsd)
-LIBS += -lpcap
-endif
-
-ifdef CONFIG_EAP_TLS
-# EAP-TLS
-ifeq ($(CONFIG_EAP_TLS), dyn)
-CFLAGS += -DEAP_TLS_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_tls.so
-else
-CFLAGS += -DEAP_TLS
-OBJS += ../src/eap_peer/eap_tls.o
-OBJS_h += ../src/eap_server/eap_tls.o
-endif
-TLS_FUNCS=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_PEAP
-# EAP-PEAP
-ifeq ($(CONFIG_EAP_PEAP), dyn)
-CFLAGS += -DEAP_PEAP_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_peap.so
-else
-CFLAGS += -DEAP_PEAP
-OBJS += ../src/eap_peer/eap_peap.o
-OBJS += ../src/eap_common/eap_peap_common.o
-OBJS_h += ../src/eap_server/eap_peap.o
-endif
-TLS_FUNCS=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_TTLS
-# EAP-TTLS
-ifeq ($(CONFIG_EAP_TTLS), dyn)
-CFLAGS += -DEAP_TTLS_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_ttls.so
-else
-CFLAGS += -DEAP_TTLS
-OBJS += ../src/eap_peer/eap_ttls.o
-OBJS_h += ../src/eap_server/eap_ttls.o
-endif
-MS_FUNCS=y
-TLS_FUNCS=y
-CHAP=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_MD5
-# EAP-MD5
-ifeq ($(CONFIG_EAP_MD5), dyn)
-CFLAGS += -DEAP_MD5_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_md5.so
-else
-CFLAGS += -DEAP_MD5
-OBJS += ../src/eap_peer/eap_md5.o
-OBJS_h += ../src/eap_server/eap_md5.o
-endif
-CHAP=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-# backwards compatibility for old spelling
-ifdef CONFIG_MSCHAPV2
-ifndef CONFIG_EAP_MSCHAPV2
-CONFIG_EAP_MSCHAPV2=y
-endif
-endif
-
-ifdef CONFIG_EAP_MSCHAPV2
-# EAP-MSCHAPv2
-ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
-CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_mschapv2.so
-EAPDYN += ../src/eap_peer/mschapv2.so
-else
-CFLAGS += -DEAP_MSCHAPv2
-OBJS += ../src/eap_peer/eap_mschapv2.o
-OBJS += ../src/eap_peer/mschapv2.o
-OBJS_h += ../src/eap_server/eap_mschapv2.o
-endif
-MS_FUNCS=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_GTC
-# EAP-GTC
-ifeq ($(CONFIG_EAP_GTC), dyn)
-CFLAGS += -DEAP_GTC_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_gtc.so
-else
-CFLAGS += -DEAP_GTC
-OBJS += ../src/eap_peer/eap_gtc.o
-OBJS_h += ../src/eap_server/eap_gtc.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_OTP
-# EAP-OTP
-ifeq ($(CONFIG_EAP_OTP), dyn)
-CFLAGS += -DEAP_OTP_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_otp.so
-else
-CFLAGS += -DEAP_OTP
-OBJS += ../src/eap_peer/eap_otp.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_SIM
-# EAP-SIM
-ifeq ($(CONFIG_EAP_SIM), dyn)
-CFLAGS += -DEAP_SIM_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_sim.so
-else
-CFLAGS += -DEAP_SIM
-OBJS += ../src/eap_peer/eap_sim.o
-OBJS_h += ../src/eap_server/eap_sim.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-CONFIG_EAP_SIM_COMMON=y
-endif
-
-ifdef CONFIG_EAP_LEAP
-# EAP-LEAP
-ifeq ($(CONFIG_EAP_LEAP), dyn)
-CFLAGS += -DEAP_LEAP_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_leap.so
-else
-CFLAGS += -DEAP_LEAP
-OBJS += ../src/eap_peer/eap_leap.o
-endif
-MS_FUNCS=y
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_PSK
-# EAP-PSK
-ifeq ($(CONFIG_EAP_PSK), dyn)
-CFLAGS += -DEAP_PSK_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_psk.so
-else
-CFLAGS += -DEAP_PSK
-OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
-OBJS_h += ../src/eap_server/eap_psk.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-NEED_AES=y
-endif
-
-ifdef CONFIG_EAP_AKA
-# EAP-AKA
-ifeq ($(CONFIG_EAP_AKA), dyn)
-CFLAGS += -DEAP_AKA_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_aka.so
-else
-CFLAGS += -DEAP_AKA
-OBJS += ../src/eap_peer/eap_aka.o
-OBJS_h += ../src/eap_server/eap_aka.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-CONFIG_EAP_SIM_COMMON=y
-endif
-
-ifdef CONFIG_EAP_AKA_PRIME
-# EAP-AKA'
-ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
-CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
-else
-CFLAGS += -DEAP_AKA_PRIME
-endif
-NEED_SHA256=y
-endif
-
-ifdef CONFIG_EAP_SIM_COMMON
-OBJS += ../src/eap_common/eap_sim_common.o
-OBJS_h += ../src/eap_server/eap_sim_db.o
-NEED_AES=y
-NEED_FIPS186_2_PRF=y
-endif
-
-ifdef CONFIG_EAP_FAST
-# EAP-FAST
-ifeq ($(CONFIG_EAP_FAST), dyn)
-CFLAGS += -DEAP_FAST_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_fast.so
-EAPDYN += ../src/eap_common/eap_fast_common.o
-else
-CFLAGS += -DEAP_FAST
-OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
-OBJS += ../src/eap_common/eap_fast_common.o
-OBJS_h += ../src/eap_server/eap_fast.o
-endif
-TLS_FUNCS=y
-NEED_T_PRF=y
-endif
-
-ifdef CONFIG_EAP_PAX
-# EAP-PAX
-ifeq ($(CONFIG_EAP_PAX), dyn)
-CFLAGS += -DEAP_PAX_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_pax.so
-else
-CFLAGS += -DEAP_PAX
-OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
-OBJS_h += ../src/eap_server/eap_pax.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_SAKE
-# EAP-SAKE
-ifeq ($(CONFIG_EAP_SAKE), dyn)
-CFLAGS += -DEAP_SAKE_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_sake.so
-else
-CFLAGS += -DEAP_SAKE
-OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
-OBJS_h += ../src/eap_server/eap_sake.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_GPSK
-# EAP-GPSK
-ifeq ($(CONFIG_EAP_GPSK), dyn)
-CFLAGS += -DEAP_GPSK_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_gpsk.so
-else
-CFLAGS += -DEAP_GPSK
-OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
-OBJS_h += ../src/eap_server/eap_gpsk.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-ifdef CONFIG_EAP_GPSK_SHA256
-CFLAGS += -DEAP_GPSK_SHA256
-endif
-NEED_SHA256=y
-endif
-
-ifdef CONFIG_WPS
-# EAP-WSC
-CFLAGS += -DCONFIG_WPS -DEAP_WSC
-OBJS += wps_supplicant.o
-OBJS += ../src/utils/uuid.o
-OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
-OBJS += ../src/wps/wps.o
-OBJS += ../src/wps/wps_common.o
-OBJS += ../src/wps/wps_attr_parse.o
-OBJS += ../src/wps/wps_attr_build.o
-OBJS += ../src/wps/wps_attr_process.o
-OBJS += ../src/wps/wps_dev_attr.o
-OBJS += ../src/wps/wps_enrollee.o
-OBJS += ../src/wps/wps_registrar.o
-OBJS_h += ../src/eap_server/eap_wsc.o
-CONFIG_IEEE8021X_EAPOL=y
-NEED_DH_GROUPS=y
-NEED_SHA256=y
-NEED_BASE64=y
-
-ifdef CONFIG_WPS_UPNP
-CFLAGS += -DCONFIG_WPS_UPNP
-OBJS += ../src/wps/wps_upnp.o
-OBJS += ../src/wps/wps_upnp_ssdp.o
-OBJS += ../src/wps/wps_upnp_web.o
-OBJS += ../src/wps/wps_upnp_event.o
-OBJS += ../src/wps/httpread.o
-endif
-
-endif
-
-ifdef CONFIG_EAP_IKEV2
-# EAP-IKEv2
-ifeq ($(CONFIG_EAP_IKEV2), dyn)
-CFLAGS += -DEAP_IKEV2_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
-EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
-else
-CFLAGS += -DEAP_IKEV2
-OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
-OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
-OBJS_h += ../src/eap_server/eap_ikev2.o
-OBJS_h += ../src/eap_server/ikev2.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-NEED_DH_GROUPS=y
-endif
-
-ifdef CONFIG_EAP_VENDOR_TEST
-ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
-CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
-EAPDYN += ../src/eap_peer/eap_vendor_test.so
-else
-CFLAGS += -DEAP_VENDOR_TEST
-OBJS += ../src/eap_peer/eap_vendor_test.o
-OBJS_h += ../src/eap_server/eap_vendor_test.o
-endif
-CONFIG_IEEE8021X_EAPOL=y
-endif
-
-ifdef CONFIG_EAP_TNC
-# EAP-TNC
-CFLAGS += -DEAP_TNC
-OBJS += ../src/eap_peer/eap_tnc.o
-OBJS += ../src/eap_peer/tncc.o
-NEED_BASE64=y
-ifndef CONFIG_NATIVE_WINDOWS
-LIBS += -ldl
-endif
-endif
-
-ifdef CONFIG_IEEE8021X_EAPOL
-# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
-CFLAGS += -DIEEE8021X_EAPOL
-OBJS += ../src/eapol_supp/eapol_supp_sm.o ../src/eap_peer/eap.o ../src/eap_common/eap_common.o ../src/eap_peer/eap_methods.o
-ifdef CONFIG_DYNAMIC_EAP_METHODS
-CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
-LIBS += -ldl -rdynamic
-endif
-endif
-
-ifdef CONFIG_EAP_SERVER
-CFLAGS += -DEAP_SERVER
-OBJS_h += ../src/eap_server/eap.o
-OBJS_h += ../src/eap_server/eap_identity.o
-OBJS_h += ../src/eap_server/eap_methods.o
-endif
-
-ifdef CONFIG_RADIUS_CLIENT
-OBJS_h += ../src/utils/ip_addr.o
-OBJS_h += ../src/radius/radius.o
-OBJS_h += ../src/radius/radius_client.o
-endif
-
-ifdef CONFIG_AUTHENTICATOR
-OBJS_h += ../hostapd/eapol_sm.o
-OBJS_h += ../hostapd/ieee802_1x.o
-endif
-
-ifdef CONFIG_WPA_AUTHENTICATOR
-OBJS_h += ../hostapd/wpa.o
-OBJS_h += ../hostapd/wpa_auth_ie.o
-ifdef CONFIG_IEEE80211R
-OBJS_h += ../hostapd/wpa_ft.o
-endif
-ifdef CONFIG_PEERKEY
-OBJS_h += ../hostapd/peerkey.o
-endif
-endif
-
-ifdef CONFIG_PCSC
-# PC/SC interface for smartcards (USIM, GSM SIM)
-CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
-OBJS += ../src/utils/pcsc_funcs.o
-# -lpthread may not be needed depending on how pcsc-lite was configured
-ifdef CONFIG_NATIVE_WINDOWS
-#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
-#dynamic symbol loading that is now used in pcsc_funcs.c
-#LIBS += -lwinscard
-else
-LIBS += -lpcsclite -lpthread
-endif
-endif
-
-ifdef CONFIG_SIM_SIMULATOR
-CFLAGS += -DCONFIG_SIM_SIMULATOR
-NEED_MILENAGE=y
-endif
-
-ifdef CONFIG_USIM_SIMULATOR
-CFLAGS += -DCONFIG_USIM_SIMULATOR
-NEED_MILENAGE=y
-endif
-
-ifdef NEED_MILENAGE
-OBJS += ../src/hlr_auc_gw/milenage.o
-endif
-
-ifndef CONFIG_TLS
-CONFIG_TLS=openssl
-endif
-
-ifeq ($(CONFIG_TLS), internal)
-ifndef CONFIG_CRYPTO
-CONFIG_CRYPTO=internal
-endif
-endif
-ifeq ($(CONFIG_CRYPTO), libtomcrypt)
-CFLAGS += -DCONFIG_INTERNAL_X509
-endif
-ifeq ($(CONFIG_CRYPTO), internal)
-CFLAGS += -DCONFIG_INTERNAL_X509
-endif
-
-
-ifdef TLS_FUNCS
-# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
-CFLAGS += -DEAP_TLS_FUNCS
-OBJS += ../src/eap_peer/eap_tls_common.o
-OBJS_h += ../src/eap_server/eap_tls_common.o
-NEED_TLS_PRF=y
-ifeq ($(CONFIG_TLS), openssl)
-CFLAGS += -DEAP_TLS_OPENSSL
-OBJS += ../src/crypto/tls_openssl.o
-LIBS += -lssl -lcrypto
-LIBS_p += -lcrypto
-endif
-ifeq ($(CONFIG_TLS), gnutls)
-OBJS += ../src/crypto/tls_gnutls.o
-LIBS += -lgnutls -lgcrypt -lgpg-error
-LIBS_p += -lgcrypt
-ifdef CONFIG_GNUTLS_EXTRA
-CFLAGS += -DCONFIG_GNUTLS_EXTRA
-LIBS += -lgnutls-extra
-endif
-endif
-ifeq ($(CONFIG_TLS), schannel)
-OBJS += ../src/crypto/tls_schannel.o
-endif
-ifeq ($(CONFIG_TLS), internal)
-OBJS += ../src/crypto/tls_internal.o
-OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o
-OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_client.o
-OBJS += ../src/tls/tlsv1_client_write.o ../src/tls/tlsv1_client_read.o
-OBJS += ../src/tls/asn1.o ../src/tls/x509v3.o
-OBJS_p += ../src/tls/asn1.o
-OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o
-NEED_BASE64=y
-NEED_TLS_PRF=y
-CFLAGS += -DCONFIG_TLS_INTERNAL
-CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
-ifeq ($(CONFIG_CRYPTO), internal)
-ifdef CONFIG_INTERNAL_LIBTOMMATH
-CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
-ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
-CFLAGS += -DLTM_FAST
-endif
-else
-LIBS += -ltommath
-LIBS_p += -ltommath
-endif
-endif
-ifeq ($(CONFIG_CRYPTO), libtomcrypt)
-LIBS += -ltomcrypt -ltfm
-LIBS_p += -ltomcrypt -ltfm
-endif
-endif
-ifeq ($(CONFIG_TLS), none)
-OBJS += ../src/crypto/tls_none.o
-CFLAGS += -DEAP_TLS_NONE
-CONFIG_INTERNAL_AES=y
-CONFIG_INTERNAL_SHA1=y
-CONFIG_INTERNAL_MD5=y
-CONFIG_INTERNAL_SHA256=y
-endif
-ifdef CONFIG_SMARTCARD
-ifndef CONFIG_NATIVE_WINDOWS
-ifneq ($(CONFIG_L2_PACKET), freebsd)
-LIBS += -ldl
-endif
-endif
-endif
-NEED_CRYPTO=y
-else
-OBJS += ../src/crypto/tls_none.o
-endif
-
-ifdef CONFIG_PKCS12
-CFLAGS += -DPKCS12_FUNCS
-endif
-
-ifdef CONFIG_SMARTCARD
-CFLAGS += -DCONFIG_SMARTCARD
-endif
-
-ifdef MS_FUNCS
-OBJS += ../src/crypto/ms_funcs.o
-NEED_CRYPTO=y
-endif
-
-ifdef CHAP
-OBJS += ../src/eap_common/chap.o
-endif
-
-ifdef NEED_CRYPTO
-ifndef TLS_FUNCS
-ifeq ($(CONFIG_TLS), openssl)
-LIBS += -lcrypto
-LIBS_p += -lcrypto
-endif
-ifeq ($(CONFIG_TLS), gnutls)
-LIBS += -lgcrypt
-LIBS_p += -lgcrypt
-endif
-ifeq ($(CONFIG_TLS), schannel)
-endif
-ifeq ($(CONFIG_TLS), internal)
-ifeq ($(CONFIG_CRYPTO), libtomcrypt)
-LIBS += -ltomcrypt -ltfm
-LIBS_p += -ltomcrypt -ltfm
-endif
-endif
-endif
-ifeq ($(CONFIG_TLS), openssl)
-OBJS += ../src/crypto/crypto_openssl.o
-OBJS_p += ../src/crypto/crypto_openssl.o
-CONFIG_INTERNAL_SHA256=y
-endif
-ifeq ($(CONFIG_TLS), gnutls)
-OBJS += ../src/crypto/crypto_gnutls.o
-OBJS_p += ../src/crypto/crypto_gnutls.o
-CONFIG_INTERNAL_SHA256=y
-endif
-ifeq ($(CONFIG_TLS), schannel)
-OBJS += ../src/crypto/crypto_cryptoapi.o
-OBJS_p += ../src/crypto/crypto_cryptoapi.o
-CONFIG_INTERNAL_SHA256=y
-endif
-ifeq ($(CONFIG_TLS), internal)
-ifeq ($(CONFIG_CRYPTO), libtomcrypt)
-OBJS += ../src/crypto/crypto_libtomcrypt.o
-OBJS_p += ../src/crypto/crypto_libtomcrypt.o
-CONFIG_INTERNAL_SHA256=y
-endif
-ifeq ($(CONFIG_CRYPTO), internal)
-OBJS += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o
-OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o
-CFLAGS += -DCONFIG_CRYPTO_INTERNAL
-CONFIG_INTERNAL_AES=y
-CONFIG_INTERNAL_DES=y
-CONFIG_INTERNAL_SHA1=y
-CONFIG_INTERNAL_MD4=y
-CONFIG_INTERNAL_MD5=y
-CONFIG_INTERNAL_SHA256=y
-endif
-ifeq ($(CONFIG_CRYPTO), cryptoapi)
-OBJS += ../src/crypto/crypto_cryptoapi.o
-OBJS_p += ../src/crypto/crypto_cryptoapi.o
-CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
-CONFIG_INTERNAL_SHA256=y
-endif
-endif
-ifeq ($(CONFIG_TLS), none)
-OBJS += ../src/crypto/crypto_none.o
-OBJS_p += ../src/crypto/crypto_none.o
-CONFIG_INTERNAL_SHA256=y
-endif
-else
-CONFIG_INTERNAL_AES=y
-CONFIG_INTERNAL_SHA1=y
-CONFIG_INTERNAL_MD5=y
-endif
-
-ifdef CONFIG_INTERNAL_AES
-CFLAGS += -DINTERNAL_AES
-endif
-ifdef CONFIG_INTERNAL_SHA1
-CFLAGS += -DINTERNAL_SHA1
-endif
-ifdef CONFIG_INTERNAL_SHA256
-CFLAGS += -DINTERNAL_SHA256
-endif
-ifdef CONFIG_INTERNAL_MD5
-CFLAGS += -DINTERNAL_MD5
-endif
-ifdef CONFIG_INTERNAL_MD4
-CFLAGS += -DINTERNAL_MD4
-endif
-ifdef CONFIG_INTERNAL_DES
-CFLAGS += -DINTERNAL_DES
-endif
-
-ifdef CONFIG_IEEE80211R
-NEED_SHA256=y
-endif
-
-ifdef CONFIG_IEEE80211W
-CFLAGS += -DCONFIG_IEEE80211W
-NEED_SHA256=y
-endif
-
-ifdef NEED_SHA256
-OBJS += ../src/crypto/sha256.o
-CFLAGS += -DNEED_SHA256
-endif
-
-ifdef CONFIG_WIRELESS_EXTENSION
-CFLAGS += -DCONFIG_WIRELESS_EXTENSION
-OBJS_d += ../src/drivers/driver_wext.o
-endif
-
-ifdef CONFIG_CTRL_IFACE
-ifeq ($(CONFIG_CTRL_IFACE), y)
-ifdef CONFIG_NATIVE_WINDOWS
-CONFIG_CTRL_IFACE=named_pipe
-else
-CONFIG_CTRL_IFACE=unix
-endif
-endif
-CFLAGS += -DCONFIG_CTRL_IFACE
-ifeq ($(CONFIG_CTRL_IFACE), unix)
-CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
-endif
-ifeq ($(CONFIG_CTRL_IFACE), udp)
-CFLAGS += -DCONFIG_CTRL_IFACE_UDP
-endif
-ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
-CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
-endif
-OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
-endif
-
-ifdef CONFIG_CTRL_IFACE_DBUS
-CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
-OBJS += ctrl_iface_dbus.o ctrl_iface_dbus_handlers.o dbus_dict_helpers.o
-ifndef DBUS_LIBS
-DBUS_LIBS := $(shell pkg-config --libs dbus-1)
-endif
-LIBS += $(DBUS_LIBS)
-ifndef DBUS_INCLUDE
-DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1)
-endif
-dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1))
-DBUS_VERSION_MAJOR=$(word 1,$(dbus_version))
-DBUS_VERSION_MINOR=$(word 2,$(dbus_version))
-ifeq ($(DBUS_VERSION_MAJOR),)
-DBUS_VERSION_MAJOR=0
-endif
-ifeq ($(DBUS_VERSION_MINOR),)
-DBUS_VERSION_MINOR=0
-endif
-DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR)
-DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR)
-CFLAGS += $(DBUS_INCLUDE)
-endif
-
-ifdef CONFIG_READLINE
-CFLAGS += -DCONFIG_READLINE
-LIBS_c += -lncurses -lreadline
-endif
-
-ifdef CONFIG_NATIVE_WINDOWS
-CFLAGS += -DCONFIG_NATIVE_WINDOWS
-LIBS += -lws2_32 -lgdi32 -lcrypt32
-LIBS_c += -lws2_32
-LIBS_p += -lws2_32 -lgdi32
-ifeq ($(CONFIG_CRYPTO), cryptoapi)
-LIBS_p += -lcrypt32
-endif
-endif
-
-ifdef CONFIG_NO_STDOUT_DEBUG
-CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
-ifndef CONFIG_CTRL_IFACE
-CFLAGS += -DCONFIG_NO_WPA_MSG
-endif
-endif
-
-ifdef CONFIG_IPV6
-# for eapol_test only
-CFLAGS += -DCONFIG_IPV6
-endif
-
-ifdef CONFIG_PEERKEY
-CFLAGS += -DCONFIG_PEERKEY
-endif
-
-ifdef CONFIG_IEEE80211R
-CFLAGS += -DCONFIG_IEEE80211R
-OBJS += ../src/rsn_supp/wpa_ft.o
-endif
-
-ifndef CONFIG_NO_WPA
-OBJS += ../src/rsn_supp/wpa.o
-OBJS += ../src/rsn_supp/preauth.o
-OBJS += ../src/rsn_supp/pmksa_cache.o
-OBJS += ../src/rsn_supp/peerkey.o
-OBJS += ../src/rsn_supp/wpa_ie.o
-OBJS += ../src/common/wpa_common.o
-NEED_AES=y
-else
-CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
-endif
-
-ifdef CONFIG_NO_WPA2
-CFLAGS += -DCONFIG_NO_WPA2
-endif
-
-ifdef CONFIG_NO_WPA_PASSPHRASE
-CFLAGS += -DCONFIG_NO_PBKDF2
-endif
-
-ifdef CONFIG_NO_AES_EXTRAS
-CFLAGS += -DCONFIG_NO_AES_WRAP
-CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1
-CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC
-CFLAGS += -DCONFIG_NO_AES_ENCRYPT
-CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK
-endif
-
-ifdef NEED_AES
-OBJS += ../src/crypto/aes_wrap.o ../src/crypto/aes.o
-endif
-
-ifdef NEED_DH_GROUPS
-OBJS += ../src/crypto/dh_groups.o
-endif
-
-ifndef NEED_FIPS186_2_PRF
-CFLAGS += -DCONFIG_NO_FIPS186_2_PRF
-endif
-
-ifndef NEED_T_PRF
-CFLAGS += -DCONFIG_NO_T_PRF
-endif
-
-ifndef NEED_TLS_PRF
-CFLAGS += -DCONFIG_NO_TLS_PRF
-endif
-
-ifdef NEED_BASE64
-OBJS += ../src/utils/base64.o
-endif
-
-ifdef CONFIG_CLIENT_MLME
-OBJS += mlme.o ../src/common/ieee802_11_common.o
-CFLAGS += -DCONFIG_CLIENT_MLME
-endif
-
-ifndef CONFIG_MAIN
-CONFIG_MAIN=main
-endif
-
-ifdef CONFIG_DEBUG_FILE
-CFLAGS += -DCONFIG_DEBUG_FILE
-endif
-
-ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
-CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
-endif
-
-OBJS += ../src/drivers/scan_helpers.o
-
-OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o
-OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
-ifdef CONFIG_AUTHENTICATOR
-OBJS_wpa += tests/link_test.o
-endif
-OBJS_wpa += $(OBJS_l2)
-OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
-OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o ../src/radius/radius.o ../src/radius/radius_client.o
-OBJS_t += ../src/utils/ip_addr.o
-OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
-OBJS += $(CONFIG_MAIN).o
-
-ifdef CONFIG_PRIVSEP
-OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o ../src/drivers/scan_helpers.o
-OBJS_priv += $(OBJS_l2)
-OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
-OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
-OBJS_priv += ../src/utils/common.o
-OBJS_priv += ../src/utils/wpa_debug.o
-OBJS_priv += ../src/utils/wpabuf.o
-OBJS_priv += wpa_priv.o
-ifdef CONFIG_DRIVER_TEST
-OBJS_priv += ../src/crypto/sha1.o
-OBJS_priv += ../src/crypto/md5.o
-ifeq ($(CONFIG_TLS), openssl)
-OBJS_priv += ../src/crypto/crypto_openssl.o
-endif
-ifeq ($(CONFIG_TLS), gnutls)
-OBJS_priv += ../src/crypto/crypto_gnutls.o
-endif
-ifeq ($(CONFIG_TLS), internal)
-ifeq ($(CONFIG_CRYPTO), libtomcrypt)
-OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
-else
-OBJS_priv += ../src/crypto/crypto_internal.o
-endif
-endif
-endif # CONFIG_DRIVER_TEST
-OBJS += ../src/l2_packet/l2_packet_privsep.o
-OBJS += ../src/drivers/driver_privsep.o
-EXTRA_progs += wpa_priv
-else
-OBJS += $(OBJS_d) ../src/drivers/drivers.o
-OBJS += $(OBJS_l2)
-endif
-
-ifdef CONFIG_NDIS_EVENTS_INTEGRATED
-CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
-OBJS += ../src/drivers/ndis_events.o
-EXTRALIBS += -loleaut32 -lole32 -luuid
-ifdef PLATFORMSDKLIB
-EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
-else
-EXTRALIBS += WbemUuid.Lib
-endif
-endif
-
-ifndef LDO
-LDO=$(CC)
-endif
-
-dynamic_eap_methods: $(EAPDYN)
-
-wpa_priv: $(OBJS_priv)
- $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
-
-wpa_supplicant: .config $(OBJS) $(EXTRA_progs)
- $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
-
-eapol_test: .config $(OBJS_t)
- $(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
-
-preauth_test: .config $(OBJS_t2)
- $(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
-
-wpa_passphrase: $(OBJS_p)
- $(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
-
-wpa_cli: $(OBJS_c)
- $(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
-
-link_test: $(OBJS) $(OBJS_h) tests/link_test.o
- $(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
-
-test_wpa: $(OBJS_wpa) $(OBJS_h)
- $(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
-
-OBJSa=../src/tls/asn1_test.o ../src/tls/asn1.o ../src/tls/x509v3.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
- ../src/crypto/crypto_$(CONFIG_CRYPTO).o ../src/crypto/md5.o ../src/crypto/sha1.o \
- ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
- ../src/crypto/aes.o ../src/tls/bignum.o ../src/tls/rsa.o
-asn1_test: $(OBJSa)
- $(LDO) $(LDFLAGS) -o asn1_test $(OBJSa)
-
-OBJSx=tests/test_x509v3.o ../src/tls/asn1.o ../src/tls/x509v3.o \
- ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
- ../src/crypto/crypto_$(CONFIG_CRYPTO).o \
- ../src/crypto/md5.o ../src/crypto/sha1.o ../src/crypto/aes.o \
- ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
- ../src/crypto/sha256.o \
- ../src/tls/bignum.o ../src/tls/rsa.o
-test_x509v3: $(OBJSx)
- $(LDO) $(LDFLAGS) -o test_x509v3 $(OBJSx)
-
-win_if_list: win_if_list.c
- $(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
-
-eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
- -Deap_peer_psk_register=eap_peer_method_dynamic_init
-
-eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
- -Deap_peer_pax_register=eap_peer_method_dynamic_init
-
-eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
- -Deap_peer_sake_register=eap_peer_method_dynamic_init
-
-eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
- -Deap_peer_wsc_register=eap_peer_method_dynamic_init
-
-eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
- -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
-
-%.so: %.c
- $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
- -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
-
-
-wpa_supplicant.exe: wpa_supplicant
- mv -f $< $@
-wpa_cli.exe: wpa_cli
- mv -f $< $@
-wpa_passphrase.exe: wpa_passphrase
- mv -f $< $@
-win_if_list.exe: win_if_list
- mv -f $< $@
-eapol_test.exe: eapol_test
- mv -f $< $@
-
-WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
-
-windows-bin: $(WINALL)
- $(STRIP) $(WINALL)
-
-wpa_gui/Makefile:
- qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro
-
-wpa_gui: wpa_gui/Makefile
- $(MAKE) -C wpa_gui
-
-wpa_gui-qt4/Makefile:
- qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
-
-wpa_gui-qt4: wpa_gui-qt4/Makefile
- $(MAKE) -C wpa_gui-qt4
-
-TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o ../src/crypto/sha1.o ../src/crypto/md5.o \
- ../src/utils/os_unix.o ../src/crypto/rc4.o tests/test_ms_funcs.o
-test-ms_funcs: $(TEST_MS_FUNCS_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_MS_FUNCS_OBJS) $(LIBS) -lcrypto
- ./test-ms_funcs
- rm test-ms_funcs
-
-TEST_SHA1_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o tests/test_sha1.o #../src/crypto/crypto_openssl.o
-test-sha1: $(TEST_SHA1_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA1_OBJS) $(LIBS)
- ./test-sha1
- rm test-sha1
-
-TEST_SHA256_OBJS = ../src/crypto/sha256.o ../src/crypto/md5.o tests/test_sha256.o ../src/utils/os_unix.o ../src/crypto/crypto_openssl.o
-test-sha256: $(TEST_SHA256_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA256_OBJS) $(LIBS)
- ./test-sha256
- rm test-sha256
-
-TEST_AES_OBJS = ../src/crypto/aes_wrap.o ../src/crypto/aes.o tests/test_aes.o
-test-aes: $(TEST_AES_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
- ./test-aes
- rm test-aes
-
-TEST_EAP_SIM_COMMON_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o \
- ../src/crypto/aes_wrap.o ../src/utils/common.o ../src/utils/os_unix.o \
- ../src/utils/wpa_debug.o ../src/crypto/aes.o \
- tests/test_eap_sim_common.o
-test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
- ./test-eap_sim_common
- rm test-eap_sim_common
-
-TEST_MD4_OBJS = ../src/crypto/md4.o tests/test_md4.o #../src/crypto/crypto_openssl.o
-test-md4: $(TEST_MD4_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_MD4_OBJS) $(LIBS)
- ./test-md4
- rm test-md4
-
-TEST_MD5_OBJS = ../src/crypto/md5.o tests/test_md5.o #../src/crypto/crypto_openssl.o
-test-md5: $(TEST_MD5_OBJS)
- $(LDO) $(LDFLAGS) -o $@ $(TEST_MD5_OBJS) $(LIBS)
- ./test-md5
- rm test-md5
-
-tests: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5
-
-clean:
- $(MAKE) -C ../src clean
- rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL)
-
-%.eps: %.fig
- fig2dev -L eps $*.fig $*.eps
-
-%.png: %.fig
- fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \
- > $*.png
-
-docs-pics: doc/wpa_supplicant.png doc/wpa_supplicant.eps
-
-docs: docs-pics
- (cd ..; doxygen wpa_supplicant/doc/doxygen.full; cd wpa_supplicant)
- $(MAKE) -C doc/latex
- cp doc/latex/refman.pdf wpa_supplicant-devel.pdf
-
-docs-fast: docs-pics
- (cd ..; doxygen wpa_supplicant/doc/doxygen.fast; cd wpa_supplicant)
-
-clean-docs:
- rm -rf doc/latex doc/html
- rm -f doc/wpa_supplicant.{eps,png} wpa_supplicant-devel.pdf
-
--include $(OBJS:%.o=%.d)
diff --git a/wpa_supplicant/README-Windows.txt b/wpa_supplicant/README-Windows.txt
deleted file mode 100644
index 292223d2d5fe..000000000000
--- a/wpa_supplicant/README-Windows.txt
+++ /dev/null
@@ -1,450 +0,0 @@
-wpa_supplicant for Windows
-==========================
-
-Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi> and contributors
-All Rights Reserved.
-
-This program is dual-licensed under both the GPL version 2 and BSD
-license. Either license may be used at your option.
-
-This product includes software developed by the OpenSSL Project
-for use in the OpenSSL Toolkit (http://www.openssl.org/). This
-product includes cryptographic software written by Eric Young
-(eay@cryptsoft.com).
-
-
-wpa_supplicant has support for being used as a WPA/WPA2/IEEE 802.1X
-Supplicant on Windows. The current port requires that WinPcap
-(http://winpcap.polito.it/) is installed for accessing packets and the
-driver interface. Both release versions 3.0 and 3.1 are supported.
-
-The current port is still somewhat experimental. It has been tested
-mainly on Windows XP (SP2) with limited set of NDIS drivers. In
-addition, the current version has been reported to work with Windows
-2000.
-
-All security modes have been verified to work (at least complete
-authentication and successfully ping a wired host):
-- plaintext
-- static WEP / open system authentication
-- static WEP / shared key authentication
-- IEEE 802.1X with dynamic WEP keys
-- WPA-PSK, TKIP, CCMP, TKIP+CCMP
-- WPA-EAP, TKIP, CCMP, TKIP+CCMP
-- WPA2-PSK, TKIP, CCMP, TKIP+CCMP
-- WPA2-EAP, TKIP, CCMP, TKIP+CCMP
-
-
-Binary version
---------------
-
-Compiled binary version of the wpa_supplicant and additional tools is
-available from http://w1.fi/wpa_supplicant/. These binaries can be
-used after installing WinPcap.
-
-wpa_gui uses Qt 4 framework and may need additional dynamic libraries
-(DLLs). These libraries are available from
-http://w1.fi/wpa_supplicant/qt4/wpa_gui-qt433-windows-dll.zip
-You can copy the DLL files from this ZIP package into the same directory
-with wpa_gui.exe to allow wpa_gui to be started.
-
-
-Building wpa_supplicant with mingw
-----------------------------------
-
-The default build setup for wpa_supplicant is to use MinGW and
-cross-compiling from Linux to MinGW/Windows. It should also be
-possible to build this under Windows using the MinGW tools, but that
-is not tested nor supported and is likely to require some changes to
-the Makefile unless cygwin is used.
-
-
-Building wpa_supplicant with MSVC
----------------------------------
-
-wpa_supplicant can be built with Microsoft Visual C++ compiler. This
-has been tested with Microsoft Visual C++ Toolkit 2003 and Visual
-Studio 2005 using the included nmake.mak as a Makefile for nmake. IDE
-can also be used by creating a project that includes the files and
-defines mentioned in nmake.mak. Example VS2005 solution and project
-files are included in vs2005 subdirectory. This can be used as a
-starting point for building the programs with VS2005 IDE. Visual Studio
-2008 Express Edition is also able to use these project files.
-
-WinPcap development package is needed for the build and this can be
-downloaded from http://www.winpcap.org/install/bin/WpdPack_4_0_2.zip. The
-default nmake.mak expects this to be unpacked into C:\dev\WpdPack so
-that Include and Lib directories are in this directory. The files can be
-stored elsewhere as long as the WINPCAPDIR in nmake.mak is updated to
-match with the selected directory. In case a project file in the IDE is
-used, these Include and Lib directories need to be added to project
-properties as additional include/library directories.
-
-OpenSSL source package can be downloaded from
-http://www.openssl.org/source/openssl-0.9.8i.tar.gz and built and
-installed following instructions in INSTALL.W32. Note that if EAP-FAST
-support will be included in the wpa_supplicant, OpenSSL needs to be
-patched to# support it openssl-0.9.8i-tls-extensions.patch. The example
-nmake.mak file expects OpenSSL to be installed into C:\dev\openssl, but
-this directory can be modified by changing OPENSSLDIR variable in
-nmake.mak.
-
-If you do not need EAP-FAST support, you may also be able to use Win32
-binary installation package of OpenSSL from
-http://www.slproweb.com/products/Win32OpenSSL.html instead of building
-the library yourself. In this case, you will need to copy Include and
-Lib directories in suitable directory, e.g., C:\dev\openssl for the
-default nmake.mak. Copy {Win32OpenSSLRoot}\include into
-C:\dev\openssl\include and make C:\dev\openssl\lib subdirectory with
-files from {Win32OpenSSLRoot}\VC (i.e., libeay*.lib and ssleay*.lib).
-This will end up using dynamically linked OpenSSL (i.e., .dll files are
-needed) for it. Alternative, you can copy files from
-{Win32OpenSSLRoot}\VC\static to create a static build (no OpenSSL .dll
-files needed).
-
-
-Building wpa_supplicant for cygwin
-----------------------------------
-
-wpa_supplicant can be built for cygwin by installing the needed
-development packages for cygwin. This includes things like compiler,
-make, openssl development package, etc. In addition, developer's pack
-for WinPcap (WPdpack.zip) from
-http://winpcap.polito.it/install/default.htm is needed.
-
-.config file should enable only one driver interface,
-CONFIG_DRIVER_NDIS. In addition, include directories may need to be
-added to match the system. An example configuration is available in
-defconfig. The library and include files for WinPcap will either need
-to be installed in compiler/linker default directories or their
-location will need to be adding to .config when building
-wpa_supplicant.
-
-Othen than this, the build should be more or less identical to Linux
-version, i.e., just run make after having created .config file. An
-additional tool, win_if_list.exe, can be built by running "make
-win_if_list".
-
-
-Building wpa_gui
-----------------
-
-wpa_gui uses Qt application framework from Trolltech. It can be built
-with the open source version of Qt4 and MinGW. Following commands can
-be used to build the binary in the Qt 4 Command Prompt:
-
-# go to the root directory of wpa_supplicant source code
-cd wpa_gui-qt4
-qmake -o Makefile wpa_gui.pro
-make
-# the wpa_gui.exe binary is created into 'release' subdirectory
-
-
-Using wpa_supplicant for Windows
---------------------------------
-
-wpa_supplicant, wpa_cli, and wpa_gui behave more or less identically to
-Linux version, so instructions in README and example wpa_supplicant.conf
-should be applicable for most parts. In addition, there is another
-version of wpa_supplicant, wpasvc.exe, which can be used as a Windows
-service and which reads its configuration from registry instead of
-text file.
-
-When using access points in "hidden SSID" mode, ap_scan=2 mode need to
-be used (see wpa_supplicant.conf for more information).
-
-Windows NDIS/WinPcap uses quite long interface names, so some care
-will be needed when starting wpa_supplicant. Alternatively, the
-adapter description can be used as the interface name which may be
-easier since it is usually in more human-readable
-format. win_if_list.exe can be used to find out the proper interface
-name.
-
-Example steps in starting up wpa_supplicant:
-
-# win_if_list.exe
-ifname: \Device\NPF_GenericNdisWanAdapter
-description: Generic NdisWan adapter
-
-ifname: \Device\NPF_{769E012B-FD17-4935-A5E3-8090C38E25D2}
-description: Atheros Wireless Network Adapter (Microsoft's Packet Scheduler)
-
-ifname: \Device\NPF_{732546E7-E26C-48E3-9871-7537B020A211}
-description: Intel 8255x-based Integrated Fast Ethernet (Microsoft's Packet Scheduler)
-
-
-Since the example configuration used Atheros WLAN card, the middle one
-is the correct interface in this case. The interface name for -i
-command line option is the full string following "ifname:" (the
-"\Device\NPF_" prefix can be removed). In other words, wpa_supplicant
-would be started with the following command:
-
-# wpa_supplicant.exe -i'{769E012B-FD17-4935-A5E3-8090C38E25D2}' -c wpa_supplicant.conf -d
-
--d optional enables some more debugging (use -dd for even more, if
-needed). It can be left out if debugging information is not needed.
-
-With the alternative mechanism for selecting the interface, this
-command has identical results in this case:
-
-# wpa_supplicant.exe -iAtheros -c wpa_supplicant.conf -d
-
-
-Simple configuration example for WPA-PSK:
-
-#ap_scan=2
-ctrl_interface=
-network={
- ssid="test"
- key_mgmt=WPA-PSK
- proto=WPA
- pairwise=TKIP
- psk="secret passphrase"
-}
-
-(remove '#' from the comment out ap_scan line to enable mode in which
-wpa_supplicant tries to associate with the SSID without doing
-scanning; this allows APs with hidden SSIDs to be used)
-
-
-wpa_cli.exe and wpa_gui.exe can be used to interact with the
-wpa_supplicant.exe program in the same way as with Linux. Note that
-ctrl_interface is using UNIX domain sockets when built for cygwin, but
-the native build for Windows uses named pipes and the contents of the
-ctrl_interface configuration item is used to control access to the
-interface. Anyway, this variable has to be included in the configuration
-to enable the control interface.
-
-
-Example SDDL string formats:
-
-(local admins group has permission, but nobody else):
-
-ctrl_interface=SDDL=D:(A;;GA;;;BA)
-
-("A" == "access allowed", "GA" == GENERIC_ALL == all permissions, and
-"BA" == "builtin administrators" == the local admins. The empty fields
-are for flags and object GUIDs, none of which should be required in this
-case.)
-
-(local admins and the local "power users" group have permissions,
-but nobody else):
-
-ctrl_interface=SDDL=D:(A;;GA;;;BA)(A;;GA;;;PU)
-
-(One ACCESS_ALLOWED ACE for GENERIC_ALL for builtin administrators, and
-one ACCESS_ALLOWED ACE for GENERIC_ALL for power users.)
-
-(close to wide open, but you have to be a valid user on
-the machine):
-
-ctrl_interface=SDDL=D:(A;;GA;;;AU)
-
-(One ACCESS_ALLOWED ACE for GENERIC_ALL for the "authenticated users"
-group.)
-
-This one would allow absolutely everyone (including anonymous
-users) -- this is *not* recommended, since named pipes can be attached
-to from anywhere on the network (i.e. there's no "this machine only"
-like there is with 127.0.0.1 sockets):
-
-ctrl_interface=SDDL=D:(A;;GA;;;BU)(A;;GA;;;AN)
-
-(BU == "builtin users", "AN" == "anonymous")
-
-See also [1] for the format of ACEs, and [2] for the possible strings
-that can be used for principal names.
-
-[1]
-http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/ace_strings.asp
-[2]
-http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/sid_strings.asp
-
-
-Starting wpa_supplicant as a Windows service (wpasvc.exe)
----------------------------------------------------------
-
-wpa_supplicant can be started as a Windows service by using wpasvc.exe
-program that is alternative build of wpa_supplicant.exe. Most of the
-core functionality of wpasvc.exe is identical to wpa_supplicant.exe,
-but it is using Windows registry for configuration information instead
-of a text file and command line parameters. In addition, it can be
-registered as a service that can be started automatically or manually
-like any other Windows service.
-
-The root of wpa_supplicant configuration in registry is
-HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant. This level includes global
-parameters and a 'interfaces' subkey with all the interface configuration
-(adapter to confname mapping). Each such mapping is a subkey that has
-'adapter', 'config', and 'ctrl_interface' values.
-
-This program can be run either as a normal command line application,
-e.g., for debugging, with 'wpasvc.exe app' or as a Windows service.
-Service need to be registered with 'wpasvc.exe reg <full path to
-wpasvc.exe>'. Alternatively, 'wpasvc.exe reg' can be used to register
-the service with the current location of wpasvc.exe. After this, wpasvc
-can be started like any other Windows service (e.g., 'net start wpasvc')
-or it can be configured to start automatically through the Services tool
-in administrative tasks. The service can be unregistered with
-'wpasvc.exe unreg'.
-
-If the service is set to start during system bootup to make the
-network connection available before any user has logged in, there may
-be a long (half a minute or so) delay in starting up wpa_supplicant
-due to WinPcap needing a driver called "Network Monitor Driver" which
-is started by default on demand.
-
-To speed up wpa_supplicant start during system bootup, "Network
-Monitor Driver" can be configured to be started sooner by setting its
-startup type to System instead of the default Demand. To do this, open
-up Device Manager, select Show Hidden Devices, expand the "Non
-Plug-and-Play devices" branch, double click "Network Monitor Driver",
-go to the Driver tab, and change the Demand setting to System instead.
-
-Configuration data is in HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs
-key. Each configuration profile has its own key under this. In terms of text
-files, each profile would map to a separate text file with possibly multiple
-networks. Under each profile, there is a networks key that lists all
-networks as a subkey. Each network has set of values in the same way as
-network block in the configuration file. In addition, blobs subkey has
-possible blobs as values.
-
-HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks\0000
- ssid="example"
- key_mgmt=WPA-PSK
-
-See win_example.reg for an example on how to setup wpasvc.exe
-parameters in registry. It can also be imported to registry as a
-starting point for the configuration.
-
-
-
-License information for third party software used in this product:
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-
- Qt Open Source Edition
- ----------------------
-
-The Qt GUI Toolkit is Copyright (C) 1994-2007 Trolltech ASA.
-Qt Open Source Edition is licensed under GPL version 2.
-
-Source code for the library is available at
-http://w1.fi/wpa_supplicant/qt4/qt-win-opensource-src-4.3.3.zip
diff --git a/wpa_supplicant/config_winreg.c b/wpa_supplicant/config_winreg.c
deleted file mode 100644
index 456d41792245..000000000000
--- a/wpa_supplicant/config_winreg.c
+++ /dev/null
@@ -1,980 +0,0 @@
-/*
- * WPA Supplicant / Configuration backend: Windows registry
- * Copyright (c) 2003-2008, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- *
- * This file implements a configuration backend for Windows registry. All the
- * configuration information is stored in the registry and the format for
- * network configuration fields is same as described in the sample
- * configuration file, wpa_supplicant.conf.
- *
- * Configuration data is in
- * \a HKEY_LOCAL_MACHINE\\SOFTWARE\\%wpa_supplicant\\configs
- * key. Each configuration profile has its own key under this. In terms of text
- * files, each profile would map to a separate text file with possibly multiple
- * networks. Under each profile, there is a networks key that lists all
- * networks as a subkey. Each network has set of values in the same way as
- * network block in the configuration file. In addition, blobs subkey has
- * possible blobs as values.
- *
- * Example network configuration block:
- * \verbatim
-HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks\0000
- ssid="example"
- key_mgmt=WPA-PSK
-\endverbatim
- */
-
-#include "includes.h"
-
-#include "common.h"
-#include "uuid.h"
-#include "config.h"
-
-#ifndef WPA_KEY_ROOT
-#define WPA_KEY_ROOT HKEY_LOCAL_MACHINE
-#endif
-#ifndef WPA_KEY_PREFIX
-#define WPA_KEY_PREFIX TEXT("SOFTWARE\\wpa_supplicant")
-#endif
-
-#ifdef UNICODE
-#define TSTR "%S"
-#else /* UNICODE */
-#define TSTR "%s"
-#endif /* UNICODE */
-
-
-static int wpa_config_read_blobs(struct wpa_config *config, HKEY hk)
-{
- struct wpa_config_blob *blob;
- int errors = 0;
- HKEY bhk;
- LONG ret;
- DWORD i;
-
- ret = RegOpenKeyEx(hk, TEXT("blobs"), 0, KEY_QUERY_VALUE, &bhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "Could not open wpa_supplicant config "
- "blobs key");
- return 0; /* assume no blobs */
- }
-
- for (i = 0; ; i++) {
-#define TNAMELEN 255
- TCHAR name[TNAMELEN];
- char data[4096];
- DWORD namelen, datalen, type;
-
- namelen = TNAMELEN;
- datalen = sizeof(data);
- ret = RegEnumValue(bhk, i, name, &namelen, NULL, &type,
- (LPBYTE) data, &datalen);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "RegEnumValue failed: 0x%x",
- (unsigned int) ret);
- break;
- }
-
- if (namelen >= TNAMELEN)
- namelen = TNAMELEN - 1;
- name[namelen] = TEXT('\0');
- wpa_unicode2ascii_inplace(name);
-
- if (datalen >= sizeof(data))
- datalen = sizeof(data) - 1;
-
- wpa_printf(MSG_MSGDUMP, "blob %d: field='%s' len %d",
- (int) i, name, (int) datalen);
-
- blob = os_zalloc(sizeof(*blob));
- if (blob == NULL) {
- errors++;
- break;
- }
- blob->name = os_strdup((char *) name);
- blob->data = os_malloc(datalen);
- if (blob->name == NULL || blob->data == NULL) {
- wpa_config_free_blob(blob);
- errors++;
- break;
- }
- os_memcpy(blob->data, data, datalen);
- blob->len = datalen;
-
- wpa_config_set_blob(config, blob);
- }
-
- RegCloseKey(bhk);
-
- return errors ? -1 : 0;
-}
-
-
-static int wpa_config_read_reg_dword(HKEY hk, const TCHAR *name, int *_val)
-{
- DWORD val, buflen;
- LONG ret;
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, name, NULL, NULL, (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val)) {
- wpa_printf(MSG_DEBUG, TSTR "=%d", name, (int) val);
- *_val = val;
- return 0;
- }
-
- return -1;
-}
-
-
-static char * wpa_config_read_reg_string(HKEY hk, const TCHAR *name)
-{
- DWORD buflen;
- LONG ret;
- TCHAR *val;
-
- buflen = 0;
- ret = RegQueryValueEx(hk, name, NULL, NULL, NULL, &buflen);
- if (ret != ERROR_SUCCESS)
- return NULL;
- val = os_malloc(buflen);
- if (val == NULL)
- return NULL;
-
- ret = RegQueryValueEx(hk, name, NULL, NULL, (LPBYTE) val, &buflen);
- if (ret != ERROR_SUCCESS) {
- os_free(val);
- return NULL;
- }
-
- wpa_unicode2ascii_inplace(val);
- wpa_printf(MSG_DEBUG, TSTR "=%s", name, (char *) val);
- return (char *) val;
-}
-
-
-#ifdef CONFIG_WPS
-static int wpa_config_read_global_uuid(struct wpa_config *config, HKEY hk)
-{
- char *str;
- int ret = 0;
-
- str = wpa_config_read_reg_string(hk, TEXT("uuid"));
- if (str == NULL)
- return 0;
-
- if (uuid_str2bin(str, config->uuid))
- ret = -1;
-
- os_free(str);
-
- return ret;
-}
-
-
-static int wpa_config_read_global_os_version(struct wpa_config *config,
- HKEY hk)
-{
- char *str;
- int ret = 0;
-
- str = wpa_config_read_reg_string(hk, TEXT("os_version"));
- if (str == NULL)
- return 0;
-
- if (hexstr2bin(str, config->os_version, 4))
- ret = -1;
-
- os_free(str);
-
- return ret;
-}
-#endif /* CONFIG_WPS */
-
-
-static int wpa_config_read_global(struct wpa_config *config, HKEY hk)
-{
- int errors = 0;
-
- wpa_config_read_reg_dword(hk, TEXT("ap_scan"), &config->ap_scan);
- wpa_config_read_reg_dword(hk, TEXT("fast_reauth"),
- &config->fast_reauth);
- wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigPMKLifetime"),
- (int *) &config->dot11RSNAConfigPMKLifetime);
- wpa_config_read_reg_dword(hk,
- TEXT("dot11RSNAConfigPMKReauthThreshold"),
- (int *)
- &config->dot11RSNAConfigPMKReauthThreshold);
- wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigSATimeout"),
- (int *) &config->dot11RSNAConfigSATimeout);
- wpa_config_read_reg_dword(hk, TEXT("update_config"),
- &config->update_config);
-
- if (wpa_config_read_reg_dword(hk, TEXT("eapol_version"),
- &config->eapol_version) == 0) {
- if (config->eapol_version < 1 ||
- config->eapol_version > 2) {
- wpa_printf(MSG_ERROR, "Invalid EAPOL version (%d)",
- config->eapol_version);
- errors++;
- }
- }
-
- config->ctrl_interface = wpa_config_read_reg_string(
- hk, TEXT("ctrl_interface"));
-
-#ifdef CONFIG_WPS
- if (wpa_config_read_global_uuid(config, hk))
- errors++;
- config->device_name = wpa_config_read_reg_string(
- hk, TEXT("device_name"));
- config->manufacturer = wpa_config_read_reg_string(
- hk, TEXT("manufacturer"));
- config->model_name = wpa_config_read_reg_string(
- hk, TEXT("model_name"));
- config->serial_number = wpa_config_read_reg_string(
- hk, TEXT("serial_number"));
- config->device_type = wpa_config_read_reg_string(
- hk, TEXT("device_type"));
- if (wpa_config_read_global_os_version(config, hk))
- errors++;
- wpa_config_read_reg_dword(hk, TEXT("wps_cred_processing"),
- &config->wps_cred_processing);
-#endif /* CONFIG_WPS */
-
- return errors ? -1 : 0;
-}
-
-
-static struct wpa_ssid * wpa_config_read_network(HKEY hk, const TCHAR *netw,
- int id)
-{
- HKEY nhk;
- LONG ret;
- DWORD i;
- struct wpa_ssid *ssid;
- int errors = 0;
-
- ret = RegOpenKeyEx(hk, netw, 0, KEY_QUERY_VALUE, &nhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "Could not open wpa_supplicant config "
- "network '" TSTR "'", netw);
- return NULL;
- }
-
- wpa_printf(MSG_MSGDUMP, "Start of a new network '" TSTR "'", netw);
- ssid = os_zalloc(sizeof(*ssid));
- if (ssid == NULL) {
- RegCloseKey(nhk);
- return NULL;
- }
- ssid->id = id;
-
- wpa_config_set_network_defaults(ssid);
-
- for (i = 0; ; i++) {
- TCHAR name[255], data[1024];
- DWORD namelen, datalen, type;
-
- namelen = 255;
- datalen = sizeof(data);
- ret = RegEnumValue(nhk, i, name, &namelen, NULL, &type,
- (LPBYTE) data, &datalen);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "RegEnumValue failed: 0x%x",
- (unsigned int) ret);
- break;
- }
-
- if (namelen >= 255)
- namelen = 255 - 1;
- name[namelen] = TEXT('\0');
-
- if (datalen >= 1024)
- datalen = 1024 - 1;
- data[datalen] = TEXT('\0');
-
- wpa_unicode2ascii_inplace(name);
- wpa_unicode2ascii_inplace(data);
- if (wpa_config_set(ssid, (char *) name, (char *) data, 0) < 0)
- errors++;
- }
-
- RegCloseKey(nhk);
-
- if (ssid->passphrase) {
- if (ssid->psk_set) {
- wpa_printf(MSG_ERROR, "Both PSK and passphrase "
- "configured for network '" TSTR "'.", netw);
- errors++;
- }
- wpa_config_update_psk(ssid);
- }
-
- if ((ssid->key_mgmt & (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_FT_PSK |
- WPA_KEY_MGMT_PSK_SHA256)) &&
- !ssid->psk_set) {
- wpa_printf(MSG_ERROR, "WPA-PSK accepted for key management, "
- "but no PSK configured for network '" TSTR "'.",
- netw);
- errors++;
- }
-
- if ((ssid->group_cipher & WPA_CIPHER_CCMP) &&
- !(ssid->pairwise_cipher & WPA_CIPHER_CCMP) &&
- !(ssid->pairwise_cipher & WPA_CIPHER_NONE)) {
- /* Group cipher cannot be stronger than the pairwise cipher. */
- wpa_printf(MSG_DEBUG, "Removed CCMP from group cipher "
- "list since it was not allowed for pairwise "
- "cipher for network '" TSTR "'.", netw);
- ssid->group_cipher &= ~WPA_CIPHER_CCMP;
- }
-
- if (errors) {
- wpa_config_free_ssid(ssid);
- ssid = NULL;
- }
-
- return ssid;
-}
-
-
-static int wpa_config_read_networks(struct wpa_config *config, HKEY hk)
-{
- HKEY nhk;
- struct wpa_ssid *ssid, *tail = NULL, *head = NULL;
- int errors = 0;
- LONG ret;
- DWORD i;
-
- ret = RegOpenKeyEx(hk, TEXT("networks"), 0, KEY_ENUMERATE_SUB_KEYS,
- &nhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "Could not open wpa_supplicant networks "
- "registry key");
- return -1;
- }
-
- for (i = 0; ; i++) {
- TCHAR name[255];
- DWORD namelen;
-
- namelen = 255;
- ret = RegEnumKeyEx(nhk, i, name, &namelen, NULL, NULL, NULL,
- NULL);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "RegEnumKeyEx failed: 0x%x",
- (unsigned int) ret);
- break;
- }
-
- if (namelen >= 255)
- namelen = 255 - 1;
- name[namelen] = '\0';
-
- ssid = wpa_config_read_network(nhk, name, i);
- if (ssid == NULL) {
- wpa_printf(MSG_ERROR, "Failed to parse network "
- "profile '%s'.", name);
- errors++;
- continue;
- }
- if (head == NULL) {
- head = tail = ssid;
- } else {
- tail->next = ssid;
- tail = ssid;
- }
- if (wpa_config_add_prio_network(config, ssid)) {
- wpa_printf(MSG_ERROR, "Failed to add network profile "
- "'%s' to priority list.", name);
- errors++;
- continue;
- }
- }
-
- RegCloseKey(nhk);
-
- config->ssid = head;
-
- return errors ? -1 : 0;
-}
-
-
-struct wpa_config * wpa_config_read(const char *name)
-{
- TCHAR buf[256];
- int errors = 0;
- struct wpa_config *config;
- HKEY hk;
- LONG ret;
-
- config = wpa_config_alloc_empty(NULL, NULL);
- if (config == NULL)
- return NULL;
- wpa_printf(MSG_DEBUG, "Reading configuration profile '%s'", name);
-
-#ifdef UNICODE
- _snwprintf(buf, 256, WPA_KEY_PREFIX TEXT("\\configs\\%S"), name);
-#else /* UNICODE */
- os_snprintf(buf, 256, WPA_KEY_PREFIX TEXT("\\configs\\%s"), name);
-#endif /* UNICODE */
-
- ret = RegOpenKeyEx(WPA_KEY_ROOT, buf, 0, KEY_QUERY_VALUE, &hk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "Could not open wpa_supplicant "
- "configuration registry HKLM\\" TSTR, buf);
- os_free(config);
- return NULL;
- }
-
- if (wpa_config_read_global(config, hk))
- errors++;
-
- if (wpa_config_read_networks(config, hk))
- errors++;
-
- if (wpa_config_read_blobs(config, hk))
- errors++;
-
- wpa_config_debug_dump_networks(config);
-
- RegCloseKey(hk);
-
- if (errors) {
- wpa_config_free(config);
- config = NULL;
- }
-
- return config;
-}
-
-
-static int wpa_config_write_reg_dword(HKEY hk, const TCHAR *name, int val,
- int def)
-{
- LONG ret;
- DWORD _val = val;
-
- if (val == def) {
- RegDeleteValue(hk, name);
- return 0;
- }
-
- ret = RegSetValueEx(hk, name, 0, REG_DWORD, (LPBYTE) &_val,
- sizeof(_val));
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "WINREG: Failed to set %s=%d: error %d",
- name, val, (int) GetLastError());
- return -1;
- }
-
- return 0;
-}
-
-
-static int wpa_config_write_reg_string(HKEY hk, const char *name,
- const char *val)
-{
- LONG ret;
- TCHAR *_name, *_val;
-
- _name = wpa_strdup_tchar(name);
- if (_name == NULL)
- return -1;
-
- if (val == NULL) {
- RegDeleteValue(hk, _name);
- os_free(_name);
- return 0;
- }
-
- _val = wpa_strdup_tchar(val);
- if (_val == NULL) {
- os_free(_name);
- return -1;
- }
- ret = RegSetValueEx(hk, _name, 0, REG_SZ, (BYTE *) _val,
- (os_strlen(val) + 1) * sizeof(TCHAR));
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "WINREG: Failed to set %s='%s': "
- "error %d", name, val, (int) GetLastError());
- os_free(_name);
- os_free(_val);
- return -1;
- }
-
- os_free(_name);
- os_free(_val);
- return 0;
-}
-
-
-static int wpa_config_write_global(struct wpa_config *config, HKEY hk)
-{
-#ifdef CONFIG_CTRL_IFACE
- wpa_config_write_reg_string(hk, "ctrl_interface",
- config->ctrl_interface);
-#endif /* CONFIG_CTRL_IFACE */
-
- wpa_config_write_reg_dword(hk, TEXT("eapol_version"),
- config->eapol_version,
- DEFAULT_EAPOL_VERSION);
- wpa_config_write_reg_dword(hk, TEXT("ap_scan"), config->ap_scan,
- DEFAULT_AP_SCAN);
- wpa_config_write_reg_dword(hk, TEXT("fast_reauth"),
- config->fast_reauth, DEFAULT_FAST_REAUTH);
- wpa_config_write_reg_dword(hk, TEXT("dot11RSNAConfigPMKLifetime"),
- config->dot11RSNAConfigPMKLifetime, 0);
- wpa_config_write_reg_dword(hk,
- TEXT("dot11RSNAConfigPMKReauthThreshold"),
- config->dot11RSNAConfigPMKReauthThreshold,
- 0);
- wpa_config_write_reg_dword(hk, TEXT("dot11RSNAConfigSATimeout"),
- config->dot11RSNAConfigSATimeout, 0);
- wpa_config_write_reg_dword(hk, TEXT("update_config"),
- config->update_config,
- 0);
-#ifdef CONFIG_WPS
- if (!is_nil_uuid(config->uuid)) {
- char buf[40];
- uuid_bin2str(config->uuid, buf, sizeof(buf));
- wpa_config_write_reg_string(hk, "uuid", buf);
- }
- wpa_config_write_reg_string(hk, "device_name", config->device_name);
- wpa_config_write_reg_string(hk, "manufacturer", config->manufacturer);
- wpa_config_write_reg_string(hk, "model_name", config->model_name);
- wpa_config_write_reg_string(hk, "model_number", config->model_number);
- wpa_config_write_reg_string(hk, "serial_number",
- config->serial_number);
- wpa_config_write_reg_string(hk, "device_type", config->device_type);
- if (WPA_GET_BE32(config->os_version)) {
- char vbuf[10];
- os_snprintf(vbuf, sizeof(vbuf), "%08x",
- WPA_GET_BE32(config->os_version));
- wpa_config_write_reg_string(hk, "os_version", vbuf);
- }
- wpa_config_write_reg_dword(hk, TEXT("wps_cred_processing"),
- config->wps_cred_processing, 0);
-#endif /* CONFIG_WPS */
-
- return 0;
-}
-
-
-static int wpa_config_delete_subkeys(HKEY hk, const TCHAR *key)
-{
- HKEY nhk;
- int i, errors = 0;
- LONG ret;
-
- ret = RegOpenKeyEx(hk, key, 0, KEY_ENUMERATE_SUB_KEYS | DELETE, &nhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "WINREG: Could not open key '" TSTR
- "' for subkey deletion: error 0x%x (%d)", key,
- (unsigned int) ret, (int) GetLastError());
- return 0;
- }
-
- for (i = 0; ; i++) {
- TCHAR name[255];
- DWORD namelen;
-
- namelen = 255;
- ret = RegEnumKeyEx(nhk, i, name, &namelen, NULL, NULL, NULL,
- NULL);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "RegEnumKeyEx failed: 0x%x (%d)",
- (unsigned int) ret, (int) GetLastError());
- break;
- }
-
- if (namelen >= 255)
- namelen = 255 - 1;
- name[namelen] = TEXT('\0');
-
- ret = RegDeleteKey(nhk, name);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "RegDeleteKey failed: 0x%x (%d)",
- (unsigned int) ret, (int) GetLastError());
- errors++;
- }
- }
-
- RegCloseKey(nhk);
-
- return errors ? -1 : 0;
-}
-
-
-static void write_str(HKEY hk, const char *field, struct wpa_ssid *ssid)
-{
- char *value = wpa_config_get(ssid, field);
- if (value == NULL)
- return;
- wpa_config_write_reg_string(hk, field, value);
- os_free(value);
-}
-
-
-static void write_int(HKEY hk, const char *field, int value, int def)
-{
- char val[20];
- if (value == def)
- return;
- os_snprintf(val, sizeof(val), "%d", value);
- wpa_config_write_reg_string(hk, field, val);
-}
-
-
-static void write_bssid(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value = wpa_config_get(ssid, "bssid");
- if (value == NULL)
- return;
- wpa_config_write_reg_string(hk, "bssid", value);
- os_free(value);
-}
-
-
-static void write_psk(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value = wpa_config_get(ssid, "psk");
- if (value == NULL)
- return;
- wpa_config_write_reg_string(hk, "psk", value);
- os_free(value);
-}
-
-
-static void write_proto(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- if (ssid->proto == DEFAULT_PROTO)
- return;
-
- value = wpa_config_get(ssid, "proto");
- if (value == NULL)
- return;
- if (value[0])
- wpa_config_write_reg_string(hk, "proto", value);
- os_free(value);
-}
-
-
-static void write_key_mgmt(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- if (ssid->key_mgmt == DEFAULT_KEY_MGMT)
- return;
-
- value = wpa_config_get(ssid, "key_mgmt");
- if (value == NULL)
- return;
- if (value[0])
- wpa_config_write_reg_string(hk, "key_mgmt", value);
- os_free(value);
-}
-
-
-static void write_pairwise(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- if (ssid->pairwise_cipher == DEFAULT_PAIRWISE)
- return;
-
- value = wpa_config_get(ssid, "pairwise");
- if (value == NULL)
- return;
- if (value[0])
- wpa_config_write_reg_string(hk, "pairwise", value);
- os_free(value);
-}
-
-
-static void write_group(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- if (ssid->group_cipher == DEFAULT_GROUP)
- return;
-
- value = wpa_config_get(ssid, "group");
- if (value == NULL)
- return;
- if (value[0])
- wpa_config_write_reg_string(hk, "group", value);
- os_free(value);
-}
-
-
-static void write_auth_alg(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- if (ssid->auth_alg == 0)
- return;
-
- value = wpa_config_get(ssid, "auth_alg");
- if (value == NULL)
- return;
- if (value[0])
- wpa_config_write_reg_string(hk, "auth_alg", value);
- os_free(value);
-}
-
-
-#ifdef IEEE8021X_EAPOL
-static void write_eap(HKEY hk, struct wpa_ssid *ssid)
-{
- char *value;
-
- value = wpa_config_get(ssid, "eap");
- if (value == NULL)
- return;
-
- if (value[0])
- wpa_config_write_reg_string(hk, "eap", value);
- os_free(value);
-}
-#endif /* IEEE8021X_EAPOL */
-
-
-static void write_wep_key(HKEY hk, int idx, struct wpa_ssid *ssid)
-{
- char field[20], *value;
-
- os_snprintf(field, sizeof(field), "wep_key%d", idx);
- value = wpa_config_get(ssid, field);
- if (value) {
- wpa_config_write_reg_string(hk, field, value);
- os_free(value);
- }
-}
-
-
-static int wpa_config_write_network(HKEY hk, struct wpa_ssid *ssid, int id)
-{
- int i, errors = 0;
- HKEY nhk, netw;
- LONG ret;
- TCHAR name[5];
-
- ret = RegOpenKeyEx(hk, TEXT("networks"), 0, KEY_CREATE_SUB_KEY, &nhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "WINREG: Could not open networks key "
- "for subkey addition: error 0x%x (%d)",
- (unsigned int) ret, (int) GetLastError());
- return 0;
- }
-
-#ifdef UNICODE
- wsprintf(name, L"%04d", id);
-#else /* UNICODE */
- os_snprintf(name, sizeof(name), "%04d", id);
-#endif /* UNICODE */
- ret = RegCreateKeyEx(nhk, name, 0, NULL, 0, KEY_WRITE, NULL, &netw,
- NULL);
- RegCloseKey(nhk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "WINREG: Could not add network key '%s':"
- " error 0x%x (%d)",
- name, (unsigned int) ret, (int) GetLastError());
- return -1;
- }
-
-#define STR(t) write_str(netw, #t, ssid)
-#define INT(t) write_int(netw, #t, ssid->t, 0)
-#define INTe(t) write_int(netw, #t, ssid->eap.t, 0)
-#define INT_DEF(t, def) write_int(netw, #t, ssid->t, def)
-#define INT_DEFe(t, def) write_int(netw, #t, ssid->eap.t, def)
-
- STR(ssid);
- INT(scan_ssid);
- write_bssid(netw, ssid);
- write_psk(netw, ssid);
- write_proto(netw, ssid);
- write_key_mgmt(netw, ssid);
- write_pairwise(netw, ssid);
- write_group(netw, ssid);
- write_auth_alg(netw, ssid);
-#ifdef IEEE8021X_EAPOL
- write_eap(netw, ssid);
- STR(identity);
- STR(anonymous_identity);
- STR(password);
- STR(ca_cert);
- STR(ca_path);
- STR(client_cert);
- STR(private_key);
- STR(private_key_passwd);
- STR(dh_file);
- STR(subject_match);
- STR(altsubject_match);
- STR(ca_cert2);
- STR(ca_path2);
- STR(client_cert2);
- STR(private_key2);
- STR(private_key2_passwd);
- STR(dh_file2);
- STR(subject_match2);
- STR(altsubject_match2);
- STR(phase1);
- STR(phase2);
- STR(pcsc);
- STR(pin);
- STR(engine_id);
- STR(key_id);
- STR(cert_id);
- STR(ca_cert_id);
- STR(key2_id);
- STR(pin2);
- STR(engine2_id);
- STR(cert2_id);
- STR(ca_cert2_id);
- INTe(engine);
- INTe(engine2);
- INT_DEF(eapol_flags, DEFAULT_EAPOL_FLAGS);
-#endif /* IEEE8021X_EAPOL */
- for (i = 0; i < 4; i++)
- write_wep_key(netw, i, ssid);
- INT(wep_tx_keyidx);
- INT(priority);
-#ifdef IEEE8021X_EAPOL
- INT_DEF(eap_workaround, DEFAULT_EAP_WORKAROUND);
- STR(pac_file);
- INT_DEFe(fragment_size, DEFAULT_FRAGMENT_SIZE);
-#endif /* IEEE8021X_EAPOL */
- INT(mode);
- INT(proactive_key_caching);
- INT(disabled);
- INT(peerkey);
-#ifdef CONFIG_IEEE80211W
- INT(ieee80211w);
-#endif /* CONFIG_IEEE80211W */
- STR(id_str);
-
-#undef STR
-#undef INT
-#undef INT_DEF
-
- RegCloseKey(netw);
-
- return errors ? -1 : 0;
-}
-
-
-static int wpa_config_write_blob(HKEY hk, struct wpa_config_blob *blob)
-{
- HKEY bhk;
- LONG ret;
- TCHAR *name;
-
- ret = RegCreateKeyEx(hk, TEXT("blobs"), 0, NULL, 0, KEY_WRITE, NULL,
- &bhk, NULL);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_DEBUG, "WINREG: Could not add blobs key: "
- "error 0x%x (%d)",
- (unsigned int) ret, (int) GetLastError());
- return -1;
- }
-
- name = wpa_strdup_tchar(blob->name);
- ret = RegSetValueEx(bhk, name, 0, REG_BINARY, blob->data,
- blob->len);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "WINREG: Failed to set blob %s': "
- "error 0x%x (%d)", blob->name, (unsigned int) ret,
- (int) GetLastError());
- RegCloseKey(bhk);
- os_free(name);
- return -1;
- }
- os_free(name);
-
- RegCloseKey(bhk);
-
- return 0;
-}
-
-
-int wpa_config_write(const char *name, struct wpa_config *config)
-{
- TCHAR buf[256];
- HKEY hk;
- LONG ret;
- int errors = 0;
- struct wpa_ssid *ssid;
- struct wpa_config_blob *blob;
- int id;
-
- wpa_printf(MSG_DEBUG, "Writing configuration file '%s'", name);
-
-#ifdef UNICODE
- _snwprintf(buf, 256, WPA_KEY_PREFIX TEXT("\\configs\\%S"), name);
-#else /* UNICODE */
- os_snprintf(buf, 256, WPA_KEY_PREFIX TEXT("\\configs\\%s"), name);
-#endif /* UNICODE */
-
- ret = RegOpenKeyEx(WPA_KEY_ROOT, buf, 0, KEY_SET_VALUE | DELETE, &hk);
- if (ret != ERROR_SUCCESS) {
- wpa_printf(MSG_ERROR, "Could not open wpa_supplicant "
- "configuration registry %s: error %d", buf,
- (int) GetLastError());
- return -1;
- }
-
- if (wpa_config_write_global(config, hk)) {
- wpa_printf(MSG_ERROR, "Failed to write global configuration "
- "data");
- errors++;
- }
-
- wpa_config_delete_subkeys(hk, TEXT("networks"));
- for (ssid = config->ssid, id = 0; ssid; ssid = ssid->next, id++) {
- if (ssid->key_mgmt == WPA_KEY_MGMT_WPS)
- continue; /* do not save temporary WPS networks */
- if (wpa_config_write_network(hk, ssid, id))
- errors++;
- }
-
- RegDeleteKey(hk, TEXT("blobs"));
- for (blob = config->blobs; blob; blob = blob->next) {
- if (wpa_config_write_blob(hk, blob))
- errors++;
- }
-
- RegCloseKey(hk);
-
- wpa_printf(MSG_DEBUG, "Configuration '%s' written %ssuccessfully",
- name, errors ? "un" : "");
- return errors ? -1 : 0;
-}
diff --git a/wpa_supplicant/ctrl_iface_named_pipe.c b/wpa_supplicant/ctrl_iface_named_pipe.c
deleted file mode 100644
index e8b53b194581..000000000000
--- a/wpa_supplicant/ctrl_iface_named_pipe.c
+++ /dev/null
@@ -1,835 +0,0 @@
-/*
- * WPA Supplicant / Windows Named Pipe -based control interface
- * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include "includes.h"
-
-#include "common.h"
-#include "eloop.h"
-#include "config.h"
-#include "eapol_supp/eapol_supp_sm.h"
-#include "wpa_supplicant_i.h"
-#include "ctrl_iface.h"
-#include "wpa_ctrl.h"
-
-#ifdef __MINGW32_VERSION
-/* mingw-w32api v3.1 does not yet include sddl.h, so define needed parts here
- */
-#define SDDL_REVISION_1 1
-BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(
- LPCSTR, DWORD, PSECURITY_DESCRIPTOR *, PULONG);
-BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(
- LPCWSTR, DWORD, PSECURITY_DESCRIPTOR *, PULONG);
-#ifdef UNICODE
-#define ConvertStringSecurityDescriptorToSecurityDescriptor \
-ConvertStringSecurityDescriptorToSecurityDescriptorW
-#else
-#define ConvertStringSecurityDescriptorToSecurityDescriptor \
-ConvertStringSecurityDescriptorToSecurityDescriptorA
-#endif
-#else /* __MINGW32_VERSION */
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0500
-#endif
-#include <sddl.h>
-#endif /* __MINGW32_VERSION */
-
-#ifndef WPA_SUPPLICANT_NAMED_PIPE
-#define WPA_SUPPLICANT_NAMED_PIPE "WpaSupplicant"
-#endif
-#define NAMED_PIPE_PREFIX TEXT("\\\\.\\pipe\\") TEXT(WPA_SUPPLICANT_NAMED_PIPE)
-
-/* Per-interface ctrl_iface */
-
-#define REQUEST_BUFSIZE 256
-#define REPLY_BUFSIZE 4096
-
-struct ctrl_iface_priv;
-
-/**
- * struct wpa_ctrl_dst - Internal data structure of control interface clients
- *
- * This structure is used to store information about registered control
- * interface monitors into struct wpa_supplicant. This data is private to
- * ctrl_iface_named_pipe.c and should not be touched directly from other files.
- */
-struct wpa_ctrl_dst {
- /* Note: OVERLAPPED must be the first member of struct wpa_ctrl_dst */
- OVERLAPPED overlap;
- struct wpa_ctrl_dst *next, *prev;
- struct ctrl_iface_priv *priv;
- HANDLE pipe;
- int attached;
- int debug_level;
- int errors;
- char req_buf[REQUEST_BUFSIZE];
- char *rsp_buf;
- int used;
-};
-
-
-struct ctrl_iface_priv {
- struct wpa_supplicant *wpa_s;
- struct wpa_ctrl_dst *ctrl_dst;
- SECURITY_ATTRIBUTES attr;
- int sec_attr_set;
-};
-
-
-static void wpa_supplicant_ctrl_iface_send(struct ctrl_iface_priv *priv,
- int level, const char *buf,
- size_t len);
-
-static void ctrl_close_pipe(struct wpa_ctrl_dst *dst);
-static void wpa_supplicant_ctrl_iface_receive(void *, void *);
-static VOID WINAPI ctrl_iface_read_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap);
-
-struct wpa_global_dst;
-static void global_close_pipe(struct wpa_global_dst *dst);
-static void wpa_supplicant_global_iface_receive(void *eloop_data,
- void *user_ctx);
-static VOID WINAPI global_iface_read_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap);
-
-
-static int ctrl_broken_pipe(HANDLE pipe, int used)
-{
- DWORD err;
-
- if (PeekNamedPipe(pipe, NULL, 0, NULL, NULL, NULL))
- return 0;
-
- err = GetLastError();
- if (err == ERROR_BROKEN_PIPE || (err == ERROR_BAD_PIPE && used))
- return 1;
- return 0;
-}
-
-
-static void ctrl_flush_broken_pipes(struct ctrl_iface_priv *priv)
-{
- struct wpa_ctrl_dst *dst, *next;
-
- dst = priv->ctrl_dst;
-
- while (dst) {
- next = dst->next;
- if (ctrl_broken_pipe(dst->pipe, dst->used)) {
- wpa_printf(MSG_DEBUG, "CTRL: closing broken pipe %p",
- dst);
- ctrl_close_pipe(dst);
- }
- dst = next;
- }
-}
-
-
-static int ctrl_open_pipe(struct ctrl_iface_priv *priv)
-{
- struct wpa_ctrl_dst *dst;
- DWORD err;
- TCHAR name[256];
-
- dst = os_zalloc(sizeof(*dst));
- if (dst == NULL)
- return -1;
- wpa_printf(MSG_DEBUG, "CTRL: Open pipe %p", dst);
-
- dst->priv = priv;
- dst->debug_level = MSG_INFO;
- dst->pipe = INVALID_HANDLE_VALUE;
-
- dst->overlap.hEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
- if (dst->overlap.hEvent == NULL) {
- wpa_printf(MSG_ERROR, "CTRL: CreateEvent failed: %d",
- (int) GetLastError());
- goto fail;
- }
-
- eloop_register_event(dst->overlap.hEvent,
- sizeof(dst->overlap.hEvent),
- wpa_supplicant_ctrl_iface_receive, dst, NULL);
-
-#ifdef UNICODE
- _snwprintf(name, 256, NAMED_PIPE_PREFIX TEXT("-%S"),
- priv->wpa_s->ifname);
-#else /* UNICODE */
- os_snprintf(name, 256, NAMED_PIPE_PREFIX "-%s",
- priv->wpa_s->ifname);
-#endif /* UNICODE */
-
- /* TODO: add support for configuring access list for the pipe */
- dst->pipe = CreateNamedPipe(name,
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
- PIPE_TYPE_MESSAGE |
- PIPE_READMODE_MESSAGE |
- PIPE_WAIT,
- 15, REPLY_BUFSIZE, REQUEST_BUFSIZE,
- 1000,
- priv->sec_attr_set ? &priv->attr : NULL);
- if (dst->pipe == INVALID_HANDLE_VALUE) {
- wpa_printf(MSG_ERROR, "CTRL: CreateNamedPipe failed: %d",
- (int) GetLastError());
- goto fail;
- }
-
- if (ConnectNamedPipe(dst->pipe, &dst->overlap)) {
- wpa_printf(MSG_ERROR, "CTRL: ConnectNamedPipe failed: %d",
- (int) GetLastError());
- CloseHandle(dst->pipe);
- os_free(dst);
- return -1;
- }
-
- err = GetLastError();
- switch (err) {
- case ERROR_IO_PENDING:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe: connection in "
- "progress");
- break;
- case ERROR_PIPE_CONNECTED:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe: already "
- "connected");
- if (SetEvent(dst->overlap.hEvent))
- break;
- /* fall through */
- default:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe error: %d",
- (int) err);
- CloseHandle(dst->pipe);
- os_free(dst);
- return -1;
- }
-
- dst->next = priv->ctrl_dst;
- if (dst->next)
- dst->next->prev = dst;
- priv->ctrl_dst = dst;
-
- return 0;
-
-fail:
- ctrl_close_pipe(dst);
- return -1;
-}
-
-
-static void ctrl_close_pipe(struct wpa_ctrl_dst *dst)
-{
- wpa_printf(MSG_DEBUG, "CTRL: close pipe %p", dst);
-
- if (dst->overlap.hEvent) {
- eloop_unregister_event(dst->overlap.hEvent,
- sizeof(dst->overlap.hEvent));
- CloseHandle(dst->overlap.hEvent);
- }
-
- if (dst->pipe != INVALID_HANDLE_VALUE) {
- /*
- * Could use FlushFileBuffers() here to guarantee that all data
- * gets delivered to the client, but that can block, so let's
- * not do this for now.
- * FlushFileBuffers(dst->pipe);
- */
- CloseHandle(dst->pipe);
- }
-
- if (dst->prev)
- dst->prev->next = dst->next;
- else
- dst->priv->ctrl_dst = dst->next;
- if (dst->next)
- dst->next->prev = dst->prev;
-
- os_free(dst->rsp_buf);
- os_free(dst);
-}
-
-
-static VOID WINAPI ctrl_iface_write_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap)
-{
- struct wpa_ctrl_dst *dst = (struct wpa_ctrl_dst *) overlap;
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped write completed: dst=%p "
- "err=%d bytes=%d", dst, (int) err, (int) bytes);
- if (err) {
- ctrl_close_pipe(dst);
- return;
- }
-
- os_free(dst->rsp_buf);
- dst->rsp_buf = NULL;
-
- if (!ReadFileEx(dst->pipe, dst->req_buf, sizeof(dst->req_buf),
- &dst->overlap, ctrl_iface_read_completed)) {
- wpa_printf(MSG_DEBUG, "CTRL: ReadFileEx failed: %d",
- (int) GetLastError());
- ctrl_close_pipe(dst);
- return;
- }
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped read started for %p", dst);
-}
-
-
-static void wpa_supplicant_ctrl_iface_rx(struct wpa_ctrl_dst *dst, size_t len)
-{
- struct wpa_supplicant *wpa_s = dst->priv->wpa_s;
- char *reply = NULL, *send_buf;
- size_t reply_len = 0, send_len;
- int new_attached = 0;
- char *buf = dst->req_buf;
-
- dst->used = 1;
- if (len >= REQUEST_BUFSIZE)
- len = REQUEST_BUFSIZE - 1;
- buf[len] = '\0';
-
- if (os_strcmp(buf, "ATTACH") == 0) {
- dst->attached = 1;
- wpa_printf(MSG_DEBUG, "CTRL_IFACE monitor attached");
- new_attached = 1;
- reply_len = 2;
- } else if (os_strcmp(buf, "DETACH") == 0) {
- dst->attached = 0;
- wpa_printf(MSG_DEBUG, "CTRL_IFACE monitor detached");
- reply_len = 2;
- } else if (os_strncmp(buf, "LEVEL ", 6) == 0) {
- wpa_printf(MSG_DEBUG, "CTRL_IFACE LEVEL %s", buf + 6);
- dst->debug_level = atoi(buf + 6);
- reply_len = 2;
- } else {
- reply = wpa_supplicant_ctrl_iface_process(wpa_s, buf,
- &reply_len);
- }
-
- if (reply) {
- send_buf = reply;
- send_len = reply_len;
- } else if (reply_len == 2) {
- send_buf = "OK\n";
- send_len = 3;
- } else {
- send_buf = "FAIL\n";
- send_len = 5;
- }
-
- os_free(dst->rsp_buf);
- dst->rsp_buf = os_malloc(send_len);
- if (dst->rsp_buf == NULL) {
- ctrl_close_pipe(dst);
- os_free(reply);
- return;
- }
- os_memcpy(dst->rsp_buf, send_buf, send_len);
- os_free(reply);
-
- if (!WriteFileEx(dst->pipe, dst->rsp_buf, send_len, &dst->overlap,
- ctrl_iface_write_completed)) {
- wpa_printf(MSG_DEBUG, "CTRL: WriteFileEx failed: %d",
- (int) GetLastError());
- ctrl_close_pipe(dst);
- } else {
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped write started for %p",
- dst);
- }
-
- if (new_attached)
- eapol_sm_notify_ctrl_attached(wpa_s->eapol);
-}
-
-
-static VOID WINAPI ctrl_iface_read_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap)
-{
- struct wpa_ctrl_dst *dst = (struct wpa_ctrl_dst *) overlap;
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped read completed: dst=%p err=%d "
- "bytes=%d", dst, (int) err, (int) bytes);
- if (err == 0 && bytes > 0)
- wpa_supplicant_ctrl_iface_rx(dst, bytes);
-}
-
-
-static void wpa_supplicant_ctrl_iface_receive(void *eloop_data, void *user_ctx)
-{
- struct wpa_ctrl_dst *dst = eloop_data;
- struct ctrl_iface_priv *priv = dst->priv;
- DWORD bytes;
-
- wpa_printf(MSG_DEBUG, "CTRL: wpa_supplicant_ctrl_iface_receive");
- ResetEvent(dst->overlap.hEvent);
-
- if (!GetOverlappedResult(dst->pipe, &dst->overlap, &bytes, FALSE)) {
- wpa_printf(MSG_DEBUG, "CTRL: GetOverlappedResult failed: %d",
- (int) GetLastError());
- return;
- }
- wpa_printf(MSG_DEBUG, "CTRL: GetOverlappedResult: New client "
- "connected");
-
- /* Open a new named pipe for the next client. */
- ctrl_open_pipe(priv);
-
- /* Use write completion function to start reading a command */
- ctrl_iface_write_completed(0, 0, &dst->overlap);
-
- ctrl_flush_broken_pipes(priv);
-}
-
-
-static int ctrl_iface_parse(struct ctrl_iface_priv *priv, const char *params)
-{
- const char *sddl = NULL;
- TCHAR *t_sddl;
-
- if (os_strncmp(params, "SDDL=", 5) == 0)
- sddl = params + 5;
- if (!sddl) {
- sddl = os_strstr(params, " SDDL=");
- if (sddl)
- sddl += 6;
- }
-
- if (!sddl)
- return 0;
-
- wpa_printf(MSG_DEBUG, "CTRL: SDDL='%s'", sddl);
- os_memset(&priv->attr, 0, sizeof(priv->attr));
- priv->attr.nLength = sizeof(priv->attr);
- priv->attr.bInheritHandle = FALSE;
- t_sddl = wpa_strdup_tchar(sddl);
- if (t_sddl == NULL)
- return -1;
- if (!ConvertStringSecurityDescriptorToSecurityDescriptor(
- t_sddl, SDDL_REVISION_1,
- (PSECURITY_DESCRIPTOR *) (void *)
- &priv->attr.lpSecurityDescriptor,
- NULL)) {
- os_free(t_sddl);
- wpa_printf(MSG_ERROR, "CTRL: SDDL='%s' - could not convert to "
- "security descriptor: %d",
- sddl, (int) GetLastError());
- return -1;
- }
- os_free(t_sddl);
-
- priv->sec_attr_set = 1;
-
- return 0;
-}
-
-
-static void wpa_supplicant_ctrl_iface_msg_cb(void *ctx, int level,
- const char *txt, size_t len)
-{
- struct wpa_supplicant *wpa_s = ctx;
- if (wpa_s == NULL || wpa_s->ctrl_iface == NULL)
- return;
- wpa_supplicant_ctrl_iface_send(wpa_s->ctrl_iface, level, txt, len);
-}
-
-
-struct ctrl_iface_priv *
-wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
-{
- struct ctrl_iface_priv *priv;
-
- priv = os_zalloc(sizeof(*priv));
- if (priv == NULL)
- return NULL;
- priv->wpa_s = wpa_s;
-
- if (wpa_s->conf->ctrl_interface == NULL)
- return priv;
-
- if (ctrl_iface_parse(priv, wpa_s->conf->ctrl_interface) < 0) {
- os_free(priv);
- return NULL;
- }
-
- if (ctrl_open_pipe(priv) < 0) {
- os_free(priv);
- return NULL;
- }
-
- wpa_msg_register_cb(wpa_supplicant_ctrl_iface_msg_cb);
-
- return priv;
-}
-
-
-void wpa_supplicant_ctrl_iface_deinit(struct ctrl_iface_priv *priv)
-{
- while (priv->ctrl_dst)
- ctrl_close_pipe(priv->ctrl_dst);
- if (priv->sec_attr_set)
- LocalFree(priv->attr.lpSecurityDescriptor);
- os_free(priv);
-}
-
-
-static void wpa_supplicant_ctrl_iface_send(struct ctrl_iface_priv *priv,
- int level, const char *buf,
- size_t len)
-{
- struct wpa_ctrl_dst *dst, *next;
- char levelstr[10];
- int idx;
- char *sbuf;
- int llen;
- DWORD written;
-
- dst = priv->ctrl_dst;
- if (dst == NULL)
- return;
-
- os_snprintf(levelstr, sizeof(levelstr), "<%d>", level);
-
- llen = os_strlen(levelstr);
- sbuf = os_malloc(llen + len);
- if (sbuf == NULL)
- return;
-
- os_memcpy(sbuf, levelstr, llen);
- os_memcpy(sbuf + llen, buf, len);
-
- idx = 0;
- while (dst) {
- next = dst->next;
- if (dst->attached && level >= dst->debug_level) {
- wpa_printf(MSG_DEBUG, "CTRL_IFACE monitor send %p",
- dst);
- if (!WriteFile(dst->pipe, sbuf, llen + len, &written,
- NULL)) {
- wpa_printf(MSG_DEBUG, "CTRL: WriteFile to dst "
- "%p failed: %d",
- dst, (int) GetLastError());
- dst->errors++;
- if (dst->errors > 10)
- ctrl_close_pipe(dst);
- } else
- dst->errors = 0;
- }
- idx++;
- dst = next;
- }
- os_free(sbuf);
-}
-
-
-void wpa_supplicant_ctrl_iface_wait(struct ctrl_iface_priv *priv)
-{
- wpa_printf(MSG_DEBUG, "CTRL_IFACE - %s - wait for monitor",
- priv->wpa_s->ifname);
- if (priv->ctrl_dst == NULL)
- return;
- WaitForSingleObject(priv->ctrl_dst->pipe, INFINITE);
-}
-
-
-/* Global ctrl_iface */
-
-struct ctrl_iface_global_priv;
-
-struct wpa_global_dst {
- /* Note: OVERLAPPED must be the first member of struct wpa_global_dst
- */
- OVERLAPPED overlap;
- struct wpa_global_dst *next, *prev;
- struct ctrl_iface_global_priv *priv;
- HANDLE pipe;
- char req_buf[REQUEST_BUFSIZE];
- char *rsp_buf;
- int used;
-};
-
-struct ctrl_iface_global_priv {
- struct wpa_global *global;
- struct wpa_global_dst *ctrl_dst;
-};
-
-
-static void global_flush_broken_pipes(struct ctrl_iface_global_priv *priv)
-{
- struct wpa_global_dst *dst, *next;
-
- dst = priv->ctrl_dst;
-
- while (dst) {
- next = dst->next;
- if (ctrl_broken_pipe(dst->pipe, dst->used)) {
- wpa_printf(MSG_DEBUG, "CTRL: closing broken pipe %p",
- dst);
- global_close_pipe(dst);
- }
- dst = next;
- }
-}
-
-
-static int global_open_pipe(struct ctrl_iface_global_priv *priv)
-{
- struct wpa_global_dst *dst;
- DWORD err;
-
- dst = os_zalloc(sizeof(*dst));
- if (dst == NULL)
- return -1;
- wpa_printf(MSG_DEBUG, "CTRL: Open pipe %p", dst);
-
- dst->priv = priv;
- dst->pipe = INVALID_HANDLE_VALUE;
-
- dst->overlap.hEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
- if (dst->overlap.hEvent == NULL) {
- wpa_printf(MSG_ERROR, "CTRL: CreateEvent failed: %d",
- (int) GetLastError());
- goto fail;
- }
-
- eloop_register_event(dst->overlap.hEvent,
- sizeof(dst->overlap.hEvent),
- wpa_supplicant_global_iface_receive, dst, NULL);
-
- /* TODO: add support for configuring access list for the pipe */
- dst->pipe = CreateNamedPipe(NAMED_PIPE_PREFIX,
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
- PIPE_TYPE_MESSAGE |
- PIPE_READMODE_MESSAGE |
- PIPE_WAIT,
- 10, REPLY_BUFSIZE, REQUEST_BUFSIZE,
- 1000, NULL);
- if (dst->pipe == INVALID_HANDLE_VALUE) {
- wpa_printf(MSG_ERROR, "CTRL: CreateNamedPipe failed: %d",
- (int) GetLastError());
- goto fail;
- }
-
- if (ConnectNamedPipe(dst->pipe, &dst->overlap)) {
- wpa_printf(MSG_ERROR, "CTRL: ConnectNamedPipe failed: %d",
- (int) GetLastError());
- CloseHandle(dst->pipe);
- os_free(dst);
- return -1;
- }
-
- err = GetLastError();
- switch (err) {
- case ERROR_IO_PENDING:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe: connection in "
- "progress");
- break;
- case ERROR_PIPE_CONNECTED:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe: already "
- "connected");
- if (SetEvent(dst->overlap.hEvent))
- break;
- /* fall through */
- default:
- wpa_printf(MSG_DEBUG, "CTRL: ConnectNamedPipe error: %d",
- (int) err);
- CloseHandle(dst->pipe);
- os_free(dst);
- return -1;
- }
-
- dst->next = priv->ctrl_dst;
- if (dst->next)
- dst->next->prev = dst;
- priv->ctrl_dst = dst;
-
- return 0;
-
-fail:
- global_close_pipe(dst);
- return -1;
-}
-
-
-static void global_close_pipe(struct wpa_global_dst *dst)
-{
- wpa_printf(MSG_DEBUG, "CTRL: close pipe %p", dst);
-
- if (dst->overlap.hEvent) {
- eloop_unregister_event(dst->overlap.hEvent,
- sizeof(dst->overlap.hEvent));
- CloseHandle(dst->overlap.hEvent);
- }
-
- if (dst->pipe != INVALID_HANDLE_VALUE) {
- /*
- * Could use FlushFileBuffers() here to guarantee that all data
- * gets delivered to the client, but that can block, so let's
- * not do this for now.
- * FlushFileBuffers(dst->pipe);
- */
- CloseHandle(dst->pipe);
- }
-
- if (dst->prev)
- dst->prev->next = dst->next;
- else
- dst->priv->ctrl_dst = dst->next;
- if (dst->next)
- dst->next->prev = dst->prev;
-
- os_free(dst->rsp_buf);
- os_free(dst);
-}
-
-
-static VOID WINAPI global_iface_write_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap)
-{
- struct wpa_global_dst *dst = (struct wpa_global_dst *) overlap;
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped write completed: dst=%p "
- "err=%d bytes=%d", dst, (int) err, (int) bytes);
- if (err) {
- global_close_pipe(dst);
- return;
- }
-
- os_free(dst->rsp_buf);
- dst->rsp_buf = NULL;
-
- if (!ReadFileEx(dst->pipe, dst->req_buf, sizeof(dst->req_buf),
- &dst->overlap, global_iface_read_completed)) {
- wpa_printf(MSG_DEBUG, "CTRL: ReadFileEx failed: %d",
- (int) GetLastError());
- global_close_pipe(dst);
- /* FIX: if this was the pipe waiting for new global
- * connections, at this point there are no open global pipes..
- * Should try to open a new pipe.. */
- return;
- }
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped read started for %p", dst);
-}
-
-
-static void wpa_supplicant_global_iface_rx(struct wpa_global_dst *dst,
- size_t len)
-{
- struct wpa_global *global = dst->priv->global;
- char *reply = NULL, *send_buf;
- size_t reply_len = 0, send_len;
- char *buf = dst->req_buf;
-
- dst->used = 1;
- if (len >= REQUEST_BUFSIZE)
- len = REQUEST_BUFSIZE - 1;
- buf[len] = '\0';
-
- reply = wpa_supplicant_global_ctrl_iface_process(global, buf,
- &reply_len);
- if (reply) {
- send_buf = reply;
- send_len = reply_len;
- } else if (reply_len) {
- send_buf = "FAIL\n";
- send_len = 5;
- } else {
- os_free(dst->rsp_buf);
- dst->rsp_buf = NULL;
- return;
- }
-
- os_free(dst->rsp_buf);
- dst->rsp_buf = os_malloc(send_len);
- if (dst->rsp_buf == NULL) {
- global_close_pipe(dst);
- os_free(reply);
- return;
- }
- os_memcpy(dst->rsp_buf, send_buf, send_len);
- os_free(reply);
-
- if (!WriteFileEx(dst->pipe, dst->rsp_buf, send_len, &dst->overlap,
- global_iface_write_completed)) {
- wpa_printf(MSG_DEBUG, "CTRL: WriteFileEx failed: %d",
- (int) GetLastError());
- global_close_pipe(dst);
- } else {
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped write started for %p",
- dst);
- }
-}
-
-
-static VOID WINAPI global_iface_read_completed(DWORD err, DWORD bytes,
- LPOVERLAPPED overlap)
-{
- struct wpa_global_dst *dst = (struct wpa_global_dst *) overlap;
- wpa_printf(MSG_DEBUG, "CTRL: Overlapped read completed: dst=%p err=%d "
- "bytes=%d", dst, (int) err, (int) bytes);
- if (err == 0 && bytes > 0)
- wpa_supplicant_global_iface_rx(dst, bytes);
-}
-
-
-static void wpa_supplicant_global_iface_receive(void *eloop_data,
- void *user_ctx)
-{
- struct wpa_global_dst *dst = eloop_data;
- struct ctrl_iface_global_priv *priv = dst->priv;
- DWORD bytes;
-
- wpa_printf(MSG_DEBUG, "CTRL: wpa_supplicant_global_iface_receive");
- ResetEvent(dst->overlap.hEvent);
-
- if (!GetOverlappedResult(dst->pipe, &dst->overlap, &bytes, FALSE)) {
- wpa_printf(MSG_DEBUG, "CTRL: GetOverlappedResult failed: %d",
- (int) GetLastError());
- return;
- }
- wpa_printf(MSG_DEBUG, "CTRL: GetOverlappedResult: New client "
- "connected");
-
- /* Open a new named pipe for the next client. */
- if (global_open_pipe(priv) < 0) {
- wpa_printf(MSG_DEBUG, "CTRL: global_open_pipe failed");
- return;
- }
-
- /* Use write completion function to start reading a command */
- global_iface_write_completed(0, 0, &dst->overlap);
-
- global_flush_broken_pipes(priv);
-}
-
-
-struct ctrl_iface_global_priv *
-wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
-{
- struct ctrl_iface_global_priv *priv;
-
- priv = os_zalloc(sizeof(*priv));
- if (priv == NULL)
- return NULL;
- priv->global = global;
-
- if (global_open_pipe(priv) < 0) {
- os_free(priv);
- return NULL;
- }
-
- return priv;
-}
-
-
-void
-wpa_supplicant_global_ctrl_iface_deinit(struct ctrl_iface_global_priv *priv)
-{
- while (priv->ctrl_dst)
- global_close_pipe(priv->ctrl_dst);
- os_free(priv);
-}
diff --git a/wpa_supplicant/main_none.c b/wpa_supplicant/main_none.c
deleted file mode 100644
index 993338a9f900..000000000000
--- a/wpa_supplicant/main_none.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * WPA Supplicant / Example program entrypoint
- * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include "includes.h"
-
-#include "common.h"
-#include "wpa_supplicant_i.h"
-
-int main(int argc, char *argv[])
-{
- struct wpa_interface iface;
- int exitcode = 0;
- struct wpa_params params;
- struct wpa_global *global;
-
- memset(&params, 0, sizeof(params));
- params.wpa_debug_level = MSG_INFO;
-
- global = wpa_supplicant_init(&params);
- if (global == NULL)
- return -1;
-
- memset(&iface, 0, sizeof(iface));
- /* TODO: set interface parameters */
-
- if (wpa_supplicant_add_iface(global, &iface) == NULL)
- exitcode = -1;
-
- if (exitcode == 0)
- exitcode = wpa_supplicant_run(global);
-
- wpa_supplicant_deinit(global);
-
- return exitcode;
-}
diff --git a/wpa_supplicant/main_symbian.cpp b/wpa_supplicant/main_symbian.cpp
deleted file mode 100644
index 4ff364be3cca..000000000000
--- a/wpa_supplicant/main_symbian.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * WPA Supplicant / Program entrypoint for Symbian
- * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include "includes.h"
-
-extern "C" {
-#include "common.h"
-#include "wpa_supplicant_i.h"
-}
-
-GLDEF_C TInt E32Main(void)
-{
- struct wpa_interface iface;
- int exitcode = 0;
- struct wpa_params params;
- struct wpa_global *global;
-
- memset(&params, 0, sizeof(params));
- params.wpa_debug_level = MSG_INFO;
-
- global = wpa_supplicant_init(&params);
- if (global == NULL)
- return -1;
-
- memset(&iface, 0, sizeof(iface));
- /* TODO: set interface parameters */
-
- if (wpa_supplicant_add_iface(global, &iface) == NULL)
- exitcode = -1;
-
- if (exitcode == 0)
- exitcode = wpa_supplicant_run(global);
-
- wpa_supplicant_deinit(global);
-
- return exitcode;
-}
diff --git a/wpa_supplicant/main_winmain.c b/wpa_supplicant/main_winmain.c
deleted file mode 100644
index 19d9950ab34e..000000000000
--- a/wpa_supplicant/main_winmain.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * WPA Supplicant / WinMain() function for Windows-based applications
- * Copyright (c) 2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include "includes.h"
-
-#include "common.h"
-#include "wpa_supplicant_i.h"
-
-#ifdef _WIN32_WCE
-#define CMDLINE LPWSTR
-#else /* _WIN32_WCE */
-#define CMDLINE LPSTR
-#endif /* _WIN32_WCE */
-
-
-int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
- CMDLINE lpCmdLine, int nShowCmd)
-{
- int i;
- struct wpa_interface *ifaces, *iface;
- int iface_count, exitcode = -1;
- struct wpa_params params;
- struct wpa_global *global;
-
- if (os_program_init())
- return -1;
-
- os_memset(&params, 0, sizeof(params));
- params.wpa_debug_level = MSG_MSGDUMP;
- params.wpa_debug_file_path = "\\Temp\\wpa_supplicant-log.txt";
- params.wpa_debug_show_keys = 1;
-
- iface = ifaces = os_zalloc(sizeof(struct wpa_interface));
- if (ifaces == NULL)
- return -1;
- iface_count = 1;
-
- iface->confname = "default";
- iface->driver = "ndis";
- iface->ifname = "";
-
- exitcode = 0;
- global = wpa_supplicant_init(&params);
- if (global == NULL) {
- printf("Failed to initialize wpa_supplicant\n");
- exitcode = -1;
- }
-
- for (i = 0; exitcode == 0 && i < iface_count; i++) {
- if ((ifaces[i].confname == NULL &&
- ifaces[i].ctrl_interface == NULL) ||
- ifaces[i].ifname == NULL) {
- if (iface_count == 1 && (params.ctrl_interface ||
- params.dbus_ctrl_interface))
- break;
- exitcode = -1;
- break;
- }
- if (wpa_supplicant_add_iface(global, &ifaces[i]) == NULL)
- exitcode = -1;
- }
-
- if (exitcode == 0)
- exitcode = wpa_supplicant_run(global);
-
- wpa_supplicant_deinit(global);
-
- os_free(ifaces);
-
- os_program_deinit();
-
- return exitcode;
-}
diff --git a/wpa_supplicant/main_winsvc.c b/wpa_supplicant/main_winsvc.c
deleted file mode 100644
index 4a46ed5f1049..000000000000
--- a/wpa_supplicant/main_winsvc.c
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
- * WPA Supplicant / main() function for Win32 service
- * Copyright (c) 2003-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- *
- * The root of wpa_supplicant configuration in registry is
- * HKEY_LOCAL_MACHINE\\SOFTWARE\\%wpa_supplicant. This level includes global
- * parameters and a 'interfaces' subkey with all the interface configuration
- * (adapter to confname mapping). Each such mapping is a subkey that has
- * 'adapter' and 'config' values.
- *
- * This program can be run either as a normal command line application, e.g.,
- * for debugging, with 'wpasvc.exe app' or as a Windows service. Service need
- * to be registered with 'wpasvc.exe reg <full path to wpasvc.exe>'. After
- * this, it can be started like any other Windows service (e.g., 'net start
- * wpasvc') or it can be configured to start automatically through the Services
- * tool in administrative tasks. The service can be unregistered with
- * 'wpasvc.exe unreg'.
- */
-
-#include "includes.h"
-#include <windows.h>
-
-#include "common.h"
-#include "wpa_supplicant_i.h"
-#include "eloop.h"
-
-#ifndef WPASVC_NAME
-#define WPASVC_NAME TEXT("wpasvc")
-#endif
-#ifndef WPASVC_DISPLAY_NAME
-#define WPASVC_DISPLAY_NAME TEXT("wpa_supplicant service")
-#endif
-#ifndef WPASVC_DESCRIPTION
-#define WPASVC_DESCRIPTION \
-TEXT("Provides IEEE 802.1X and WPA/WPA2 supplicant functionality")
-#endif
-
-static HANDLE kill_svc;
-
-static SERVICE_STATUS_HANDLE svc_status_handle;
-static SERVICE_STATUS svc_status;
-
-
-#ifndef WPA_KEY_ROOT
-#define WPA_KEY_ROOT HKEY_LOCAL_MACHINE
-#endif
-#ifndef WPA_KEY_PREFIX
-#define WPA_KEY_PREFIX TEXT("SOFTWARE\\wpa_supplicant")
-#endif
-
-#ifdef UNICODE
-#define TSTR "%S"
-#else /* UNICODE */
-#define TSTR "%s"
-#endif /* UNICODE */
-
-
-static int read_interface(struct wpa_global *global, HKEY _hk,
- const TCHAR *name)
-{
- HKEY hk;
-#define TBUFLEN 255
- TCHAR adapter[TBUFLEN], config[TBUFLEN], ctrl_interface[TBUFLEN];
- DWORD buflen, val;
- LONG ret;
- struct wpa_interface iface;
- int skip_on_error = 0;
-
- ret = RegOpenKeyEx(_hk, name, 0, KEY_QUERY_VALUE, &hk);
- if (ret != ERROR_SUCCESS) {
- printf("Could not open wpa_supplicant interface key\n");
- return -1;
- }
-
- os_memset(&iface, 0, sizeof(iface));
- iface.driver = "ndis";
-
- buflen = sizeof(ctrl_interface);
- ret = RegQueryValueEx(hk, TEXT("ctrl_interface"), NULL, NULL,
- (LPBYTE) ctrl_interface, &buflen);
- if (ret == ERROR_SUCCESS) {
- ctrl_interface[TBUFLEN - 1] = TEXT('\0');
- wpa_unicode2ascii_inplace(ctrl_interface);
- printf("ctrl_interface[len=%d] '%s'\n",
- (int) buflen, (char *) ctrl_interface);
- iface.ctrl_interface = (char *) ctrl_interface;
- }
-
- buflen = sizeof(adapter);
- ret = RegQueryValueEx(hk, TEXT("adapter"), NULL, NULL,
- (LPBYTE) adapter, &buflen);
- if (ret == ERROR_SUCCESS) {
- adapter[TBUFLEN - 1] = TEXT('\0');
- wpa_unicode2ascii_inplace(adapter);
- printf("adapter[len=%d] '%s'\n",
- (int) buflen, (char *) adapter);
- iface.ifname = (char *) adapter;
- }
-
- buflen = sizeof(config);
- ret = RegQueryValueEx(hk, TEXT("config"), NULL, NULL,
- (LPBYTE) config, &buflen);
- if (ret == ERROR_SUCCESS) {
- config[sizeof(config) - 1] = '\0';
- wpa_unicode2ascii_inplace(config);
- printf("config[len=%d] '%s'\n",
- (int) buflen, (char *) config);
- iface.confname = (char *) config;
- }
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, TEXT("skip_on_error"), NULL, NULL,
- (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val))
- skip_on_error = val;
-
- RegCloseKey(hk);
-
- if (wpa_supplicant_add_iface(global, &iface) == NULL) {
- if (skip_on_error)
- wpa_printf(MSG_DEBUG, "Skipped interface '%s' due to "
- "initialization failure", iface.ifname);
- else
- return -1;
- }
-
- return 0;
-}
-
-
-static int wpa_supplicant_thread(void)
-{
- int exitcode;
- struct wpa_params params;
- struct wpa_global *global;
- HKEY hk, ihk;
- DWORD val, buflen, i;
- LONG ret;
-
- if (os_program_init())
- return -1;
-
- os_memset(&params, 0, sizeof(params));
- params.wpa_debug_level = MSG_INFO;
-
- ret = RegOpenKeyEx(WPA_KEY_ROOT, WPA_KEY_PREFIX,
- 0, KEY_QUERY_VALUE, &hk);
- if (ret != ERROR_SUCCESS) {
- printf("Could not open wpa_supplicant registry key\n");
- return -1;
- }
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, TEXT("debug_level"), NULL, NULL,
- (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val)) {
- params.wpa_debug_level = val;
- }
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, TEXT("debug_show_keys"), NULL, NULL,
- (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val)) {
- params.wpa_debug_show_keys = val;
- }
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, TEXT("debug_timestamp"), NULL, NULL,
- (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val)) {
- params.wpa_debug_timestamp = val;
- }
-
- buflen = sizeof(val);
- ret = RegQueryValueEx(hk, TEXT("debug_use_file"), NULL, NULL,
- (LPBYTE) &val, &buflen);
- if (ret == ERROR_SUCCESS && buflen == sizeof(val) && val) {
- params.wpa_debug_file_path = "\\Temp\\wpa_supplicant-log.txt";
- }
-
- exitcode = 0;
- global = wpa_supplicant_init(&params);
- if (global == NULL) {
- printf("Failed to initialize wpa_supplicant\n");
- exitcode = -1;
- }
-
- ret = RegOpenKeyEx(hk, TEXT("interfaces"), 0, KEY_ENUMERATE_SUB_KEYS,
- &ihk);
- RegCloseKey(hk);
- if (ret != ERROR_SUCCESS) {
- printf("Could not open wpa_supplicant interfaces registry "
- "key\n");
- return -1;
- }
-
- for (i = 0; ; i++) {
- TCHAR name[255];
- DWORD namelen;
-
- namelen = 255;
- ret = RegEnumKeyEx(ihk, i, name, &namelen, NULL, NULL, NULL,
- NULL);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS) {
- printf("RegEnumKeyEx failed: 0x%x\n",
- (unsigned int) ret);
- break;
- }
-
- if (namelen >= 255)
- namelen = 255 - 1;
- name[namelen] = '\0';
-
- wpa_printf(MSG_DEBUG, "interface %d: %s\n", (int) i, name);
- if (read_interface(global, ihk, name) < 0)
- exitcode = -1;
- }
-
- RegCloseKey(ihk);
-
- if (exitcode == 0)
- exitcode = wpa_supplicant_run(global);
-
- wpa_supplicant_deinit(global);
-
- os_program_deinit();
-
- return exitcode;
-}
-
-
-static DWORD svc_thread(LPDWORD param)
-{
- int ret = wpa_supplicant_thread();
-
- svc_status.dwCurrentState = SERVICE_STOPPED;
- svc_status.dwWaitHint = 0;
- if (!SetServiceStatus(svc_status_handle, &svc_status)) {
- printf("SetServiceStatus() failed: %d\n",
- (int) GetLastError());
- }
-
- return ret;
-}
-
-
-static int register_service(const TCHAR *exe)
-{
- SC_HANDLE svc, scm;
- SERVICE_DESCRIPTION sd;
-
- printf("Registering service: " TSTR "\n", WPASVC_NAME);
-
- scm = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
- if (!scm) {
- printf("OpenSCManager failed: %d\n", (int) GetLastError());
- return -1;
- }
-
- svc = CreateService(scm, WPASVC_NAME, WPASVC_DISPLAY_NAME,
- SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
- SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
- exe, NULL, NULL, NULL, NULL, NULL);
-
- if (!svc) {
- printf("CreateService failed: %d\n\n", (int) GetLastError());
- CloseServiceHandle(scm);
- return -1;
- }
-
- os_memset(&sd, 0, sizeof(sd));
- sd.lpDescription = WPASVC_DESCRIPTION;
- if (!ChangeServiceConfig2(svc, SERVICE_CONFIG_DESCRIPTION, &sd)) {
- printf("ChangeServiceConfig2 failed: %d\n",
- (int) GetLastError());
- /* This is not a fatal error, so continue anyway. */
- }
-
- CloseServiceHandle(svc);
- CloseServiceHandle(scm);
-
- printf("Service registered successfully.\n");
-
- return 0;
-}
-
-
-static int unregister_service(void)
-{
- SC_HANDLE svc, scm;
- SERVICE_STATUS status;
-
- printf("Unregistering service: " TSTR "\n", WPASVC_NAME);
-
- scm = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
- if (!scm) {
- printf("OpenSCManager failed: %d\n", (int) GetLastError());
- return -1;
- }
-
- svc = OpenService(scm, WPASVC_NAME, SERVICE_ALL_ACCESS | DELETE);
- if (!svc) {
- printf("OpenService failed: %d\n\n", (int) GetLastError());
- CloseServiceHandle(scm);
- return -1;
- }
-
- if (QueryServiceStatus(svc, &status)) {
- if (status.dwCurrentState != SERVICE_STOPPED) {
- printf("Service currently active - stopping "
- "service...\n");
- if (!ControlService(svc, SERVICE_CONTROL_STOP,
- &status)) {
- printf("ControlService failed: %d\n",
- (int) GetLastError());
- }
- Sleep(500);
- }
- }
-
- if (DeleteService(svc)) {
- printf("Service unregistered successfully.\n");
- } else {
- printf("DeleteService failed: %d\n", (int) GetLastError());
- }
-
- CloseServiceHandle(svc);
- CloseServiceHandle(scm);
-
- return 0;
-}
-
-
-static void WINAPI service_ctrl_handler(DWORD control_code)
-{
- switch (control_code) {
- case SERVICE_CONTROL_INTERROGATE:
- break;
- case SERVICE_CONTROL_SHUTDOWN:
- case SERVICE_CONTROL_STOP:
- svc_status.dwCurrentState = SERVICE_STOP_PENDING;
- svc_status.dwWaitHint = 2000;
- eloop_terminate();
- SetEvent(kill_svc);
- break;
- }
-
- if (!SetServiceStatus(svc_status_handle, &svc_status)) {
- printf("SetServiceStatus() failed: %d\n",
- (int) GetLastError());
- }
-}
-
-
-static void WINAPI service_start(DWORD argc, LPTSTR *argv)
-{
- DWORD id;
-
- svc_status_handle = RegisterServiceCtrlHandler(WPASVC_NAME,
- service_ctrl_handler);
- if (svc_status_handle == (SERVICE_STATUS_HANDLE) 0) {
- printf("RegisterServiceCtrlHandler failed: %d\n",
- (int) GetLastError());
- return;
- }
-
- os_memset(&svc_status, 0, sizeof(svc_status));
- svc_status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
- svc_status.dwCurrentState = SERVICE_START_PENDING;
- svc_status.dwWaitHint = 1000;
-
- if (!SetServiceStatus(svc_status_handle, &svc_status)) {
- printf("SetServiceStatus() failed: %d\n",
- (int) GetLastError());
- return;
- }
-
- kill_svc = CreateEvent(0, TRUE, FALSE, 0);
- if (!kill_svc) {
- printf("CreateEvent failed: %d\n", (int) GetLastError());
- return;
- }
-
- if (CreateThread(0, 0, (LPTHREAD_START_ROUTINE) svc_thread, 0, 0, &id)
- == 0) {
- printf("CreateThread failed: %d\n", (int) GetLastError());
- return;
- }
-
- if (svc_status.dwCurrentState == SERVICE_START_PENDING) {
- svc_status.dwCurrentState = SERVICE_RUNNING;
- svc_status.dwWaitHint = 0;
- svc_status.dwControlsAccepted = SERVICE_ACCEPT_STOP |
- SERVICE_ACCEPT_SHUTDOWN;
- }
-
- if (!SetServiceStatus(svc_status_handle, &svc_status)) {
- printf("SetServiceStatus() failed: %d\n",
- (int) GetLastError());
- return;
- }
-
- /* wait until service gets killed */
- WaitForSingleObject(kill_svc, INFINITE);
-}
-
-
-int main(int argc, char *argv[])
-{
- SERVICE_TABLE_ENTRY dt[] = {
- { WPASVC_NAME, service_start },
- { NULL, NULL }
- };
-
- if (argc > 1) {
- if (os_strcmp(argv[1], "reg") == 0) {
- TCHAR *path;
- int ret;
-
- if (argc < 3) {
- path = os_malloc(MAX_PATH * sizeof(TCHAR));
- if (path == NULL)
- return -1;
- if (!GetModuleFileName(NULL, path, MAX_PATH)) {
- printf("GetModuleFileName failed: "
- "%d\n", (int) GetLastError());
- os_free(path);
- return -1;
- }
- } else {
- path = wpa_strdup_tchar(argv[2]);
- if (path == NULL)
- return -1;
- }
- ret = register_service(path);
- os_free(path);
- return ret;
- } else if (os_strcmp(argv[1], "unreg") == 0) {
- return unregister_service();
- } else if (os_strcmp(argv[1], "app") == 0) {
- return wpa_supplicant_thread();
- }
- }
-
- if (!StartServiceCtrlDispatcher(dt)) {
- printf("StartServiceCtrlDispatcher failed: %d\n",
- (int) GetLastError());
- }
-
- return 0;
-}
diff --git a/wpa_supplicant/nmake.mak b/wpa_supplicant/nmake.mak
deleted file mode 100644
index 5e39c117d396..000000000000
--- a/wpa_supplicant/nmake.mak
+++ /dev/null
@@ -1,228 +0,0 @@
-# Makefile for Microsoft nmake to build wpa_supplicant
-
-# This can be run in Visual Studio 2005 Command Prompt
-
-# Note: Make sure that cl.exe is configured to include Platform SDK
-# include and lib directories (vsvars32.bat)
-
-all: wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe wpasvc.exe win_if_list.exe
-
-# Root directory for WinPcap developer's pack
-# (http://www.winpcap.org/install/bin/WpdPack_3_1.zip)
-WINPCAPDIR=C:\dev\WpdPack
-
-# Root directory for OpenSSL
-# (http://www.openssl.org/source/openssl-0.9.8a.tar.gz)
-# Build and installed following instructions in INSTALL.W32
-# Note: If EAP-FAST is included in the build, OpenSSL needs to be patched to
-# support it (openssl-tls-extensions.patch)
-# Alternatively, see README-Windows.txt for information about binary
-# installation package for OpenSSL.
-OPENSSLDIR=C:\dev\openssl
-
-CC = cl
-OBJDIR = objs
-
-CFLAGS = /DCONFIG_NATIVE_WINDOWS
-CFLAGS = $(CFLAGS) /DCONFIG_NDIS_EVENTS_INTEGRATED
-CFLAGS = $(CFLAGS) /DCONFIG_ANSI_C_EXTRA
-CFLAGS = $(CFLAGS) /DCONFIG_WINPCAP
-CFLAGS = $(CFLAGS) /DIEEE8021X_EAPOL
-CFLAGS = $(CFLAGS) /DEAP_TLS_FUNCS
-CFLAGS = $(CFLAGS) /DPKCS12_FUNCS
-CFLAGS = $(CFLAGS) /DEAP_MD5
-CFLAGS = $(CFLAGS) /DEAP_TLS
-CFLAGS = $(CFLAGS) /DEAP_MSCHAPv2
-CFLAGS = $(CFLAGS) /DEAP_PEAP
-CFLAGS = $(CFLAGS) /DEAP_TTLS
-CFLAGS = $(CFLAGS) /DEAP_GTC
-CFLAGS = $(CFLAGS) /DEAP_OTP
-CFLAGS = $(CFLAGS) /DEAP_SIM
-CFLAGS = $(CFLAGS) /DEAP_LEAP
-CFLAGS = $(CFLAGS) /DEAP_PSK
-CFLAGS = $(CFLAGS) /DEAP_AKA
-#CFLAGS = $(CFLAGS) /DEAP_FAST
-CFLAGS = $(CFLAGS) /DEAP_PAX
-CFLAGS = $(CFLAGS) /DEAP_TNC
-CFLAGS = $(CFLAGS) /DPCSC_FUNCS
-CFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE
-CFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE_NAMED_PIPE
-CFLAGS = $(CFLAGS) /DCONFIG_DRIVER_NDIS
-CFLAGS = $(CFLAGS) /I..\src /I..\src\utils /I..\src\common /I..\src\crypto
-CFLAGS = $(CFLAGS) /I..\src\rsn_supp /I..\src\eapol_supp /I.
-CFLAGS = $(CFLAGS) /DWIN32
-CFLAGS = $(CFLAGS) /Fo$(OBJDIR)\\ /c
-CFLAGS = $(CFLAGS) /W3
-
-#CFLAGS = $(CFLAGS) /WX
-
-# VS 2005 complains about lot of deprecated string functions; let's ignore them
-# at least for now since snprintf and strncpy can be used in a safe way
-CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE
-
-OBJS = \
- $(OBJDIR)\os_win32.obj \
- $(OBJDIR)\eloop_win.obj \
- $(OBJDIR)\sha1.obj \
- $(OBJDIR)\md5.obj \
- $(OBJDIR)\rc4.obj \
- $(OBJDIR)\aes_wrap.obj \
- $(OBJDIR)\common.obj \
- $(OBJDIR)\wpa_debug.obj \
- $(OBJDIR)\wpabuf.obj \
- $(OBJDIR)\wpa_supplicant.obj \
- $(OBJDIR)\wpa.obj \
- $(OBJDIR)\wpa_common.obj \
- $(OBJDIR)\wpa_ie.obj \
- $(OBJDIR)\preauth.obj \
- $(OBJDIR)\pmksa_cache.obj \
- $(OBJDIR)\eapol_supp_sm.obj \
- $(OBJDIR)\eap.obj \
- $(OBJDIR)\eap_common.obj \
- $(OBJDIR)\chap.obj \
- $(OBJDIR)\eap_methods.obj \
- $(OBJDIR)\eap_md5.obj \
- $(OBJDIR)\eap_tls.obj \
- $(OBJDIR)\eap_tls_common.obj \
- $(OBJDIR)\eap_mschapv2.obj \
- $(OBJDIR)\mschapv2.obj \
- $(OBJDIR)\eap_peap.obj \
- $(OBJDIR)\eap_peap_common.obj \
- $(OBJDIR)\eap_ttls.obj \
- $(OBJDIR)\eap_gtc.obj \
- $(OBJDIR)\eap_otp.obj \
- $(OBJDIR)\eap_leap.obj \
- $(OBJDIR)\eap_sim.obj \
- $(OBJDIR)\eap_sim_common.obj \
- $(OBJDIR)\eap_aka.obj \
- $(OBJDIR)\eap_pax.obj \
- $(OBJDIR)\eap_pax_common.obj \
- $(OBJDIR)\eap_psk.obj \
- $(OBJDIR)\eap_psk_common.obj \
- $(OBJDIR)\eap_tnc.obj \
- $(OBJDIR)\tncc.obj \
- $(OBJDIR)\base64.obj \
- $(OBJDIR)\ctrl_iface.obj \
- $(OBJDIR)\ctrl_iface_named_pipe.obj \
- $(OBJDIR)\driver_ndis.obj \
- $(OBJDIR)\driver_ndis_.obj \
- $(OBJDIR)\scan_helpers.obj \
- $(OBJDIR)\events.obj \
- $(OBJDIR)\blacklist.obj \
- $(OBJDIR)\scan.obj \
- $(OBJDIR)\wpas_glue.obj \
- $(OBJDIR)\config.obj \
- $(OBJDIR)\l2_packet_winpcap.obj \
- $(OBJDIR)\tls_openssl.obj \
- $(OBJDIR)\ms_funcs.obj \
- $(OBJDIR)\crypto_openssl.obj \
- $(OBJDIR)\pcsc_funcs.obj \
- $(OBJDIR)\ndis_events.obj
-
-# OBJS = $(OBJS) $(OBJDIR)\eap_fast.obj
-
-OBJS_t = $(OBJS) \
- $(OBJDIR)\eapol_test.obj \
- $(OBJDIR)\radius.obj \
- $(OBJDIR)\radius_client.obj \
- $(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
-
-OBJS_t2 = $(OBJS) \
- $(OBJDIR)\preauth_test.obj \
- $(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
-
-OBJS2 = $(OBJDIR)\drivers.obj \
- $(OBJDIR)\config_file.obj \
- $(OBJS2) $(OBJDIR)\main.obj
-
-OBJS3 = $(OBJDIR)\drivers.obj \
- $(OBJDIR)\config_winreg.obj \
- $(OBJS3) $(OBJDIR)\main_winsvc.obj
-
-OBJS_c = \
- $(OBJDIR)\os_win32.obj \
- $(OBJDIR)\wpa_cli.obj \
- $(OBJDIR)\wpa_ctrl.obj \
- $(OBJDIR)\common.obj
-
-OBJS_p = \
- $(OBJDIR)\os_win32.obj \
- $(OBJDIR)\common.obj \
- $(OBJDIR)\sha1.obj \
- $(OBJDIR)\md5.obj \
- $(OBJDIR)\crypto_openssl.obj \
- $(OBJDIR)\wpa_passphrase.obj
-
-LIBS = wbemuuid.lib libcmt.lib kernel32.lib uuid.lib ole32.lib oleaut32.lib \
- ws2_32.lib Advapi32.lib Crypt32.lib Winscard.lib \
- Packet.lib wpcap.lib \
- libeay32.lib ssleay32.lib
-# If using Win32 OpenSSL binary installation from Shining Light Productions,
-# replace the last line with this for dynamic libraries
-# libeay32MT.lib ssleay32MT.lib
-# and this for static libraries
-# libeay32MT.lib ssleay32MT.lib Gdi32.lib User32.lib
-
-CFLAGS = $(CFLAGS) /I"$(WINPCAPDIR)/Include" /I"$(OPENSSLDIR)\include"
-LFLAGS = /libpath:"$(WINPCAPDIR)\Lib" /libpath:"$(OPENSSLDIR)\lib"
-
-wpa_supplicant.exe: $(OBJDIR) $(OBJS) $(OBJS2)
- link.exe /out:wpa_supplicant.exe $(LFLAGS) $(OBJS) $(OBJS2) $(LIBS)
-
-wpasvc.exe: $(OBJDIR) $(OBJS) $(OBJS3)
- link.exe /out:wpasvc.exe $(LFLAGS) $(OBJS) $(OBJS3) $(LIBS)
-
-wpa_cli.exe: $(OBJDIR) $(OBJS_c)
- link.exe /out:wpa_cli.exe $(LFLAGS) $(OBJS_c) $(LIBS)
-
-wpa_passphrase.exe: $(OBJDIR) $(OBJS_p)
- link.exe /out:wpa_passphrase.exe $(LFLAGS) $(OBJS_p) $(LIBS)
-
-eapol_test.exe: $(OBJDIR) $(OBJS_t)
- link.exe /out:eapol_test.exe $(LFLAGS) $(OBJS_t) $(LIBS)
-
-preauth_test.exe: $(OBJDIR) $(OBJS_t2)
- link.exe /out:preauth_test.exe $(LFLAGS) $(OBJS_t2) $(LIBS)
-
-win_if_list.exe: $(OBJDIR) $(OBJDIR)\win_if_list.obj
- link.exe /out:win_if_list.exe $(LFLAGS) $(OBJDIR)\win_if_list.obj $(LIBS)
-
-
-{..\src\utils}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\common}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\rsn_supp}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\eapol_supp}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\crypto}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\eap_peer}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\eap_common}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\drivers}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{..\src\l2_packet}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{.\}.c{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-{.\}.cpp{$(OBJDIR)}.obj::
- $(CC) $(CFLAGS) $<
-
-$(OBJDIR):
- if not exist "$(OBJDIR)" mkdir "$(OBJDIR)"
-
-clean:
- erase $(OBJDIR)\*.obj wpa_supplicant.exe
diff --git a/wpa_supplicant/symbian/README.symbian b/wpa_supplicant/symbian/README.symbian
deleted file mode 100644
index 9d3b811f0fc0..000000000000
--- a/wpa_supplicant/symbian/README.symbian
+++ /dev/null
@@ -1,24 +0,0 @@
-wpa_supplicant for Symbian
-==========================
-
-Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi> and
-contributors
-All Rights Reserved.
-
-This program is dual-licensed under both the GPL version 2 and BSD
-license. Either license may be used at your option.
-
-
-This directory includes project files for testing experimental Symbian
-(e.g., Nokia S60 3rd Ed) builds. The Symbian port is not really
-complete or expected to work, but these files can be used to verify
-that the build itself can be completed successfully.
-
-These files have been successfully tested with Nokia S60 3rd Edition
-MR SDK.
-
-Build files can be created and a phone release build can be run with
-following commands:
-
-bldmake bldfiles
-abld build gcce urel
diff --git a/wpa_supplicant/symbian/bld.inf b/wpa_supplicant/symbian/bld.inf
deleted file mode 100644
index a1fc582c52b5..000000000000
--- a/wpa_supplicant/symbian/bld.inf
+++ /dev/null
@@ -1,8 +0,0 @@
-PRJ_PLATFORMS
-WINSCW GCCE
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-
-wpa_supplicant.mmp
diff --git a/wpa_supplicant/symbian/wpa_supplicant.mmp b/wpa_supplicant/symbian/wpa_supplicant.mmp
deleted file mode 100644
index fad9626b8388..000000000000
--- a/wpa_supplicant/symbian/wpa_supplicant.mmp
+++ /dev/null
@@ -1,38 +0,0 @@
-TARGET wpa_supplicant.exe
-UID 0x0 0x0
-VENDORID 0
-TARGETTYPE exe
-
-SYSTEMINCLUDE \epoc32\include \epoc32\include\variant \epoc32\include\ecom \epoc32\include\libc
-
-USERINCLUDE .. ..\..\src ..\..\src\utils ..\..\src\common ..\..\src\crypto ..\..\src\rsn_supp
-
-SOURCEPATH ..
-SOURCE main_symbian.cpp
-SOURCE config.c config_file.c
-SOURCE eapol_sm.c
-SOURCE wpa_supplicant.c events.c
-SOURCEPATH ..\..\src\rsn_supp
-SOURCE wpa.c preauth.c pmksa_cache.c peerkey.c wpa_ie.c
-SOURCEPATH ..\..\src\drivers
-SOURCE drivers.c
-SOURCEPATH ..\..\src\common
-SOURCE wpa_common.c
-SOURCEPATH ..\..\src\utils
-SOURCE os_none.c common.c wpa_debug.c eloop_none.c base64.c
-SOURCEPATH ..\..\src\crypto
-SOURCE sha1.c md5.c rc4.c md4.c des.c aes_wrap.c aes.c ms_funcs.c
-SOURCE tls_internal.c crypto_internal.c
-SOURCEPATH ..\..\src\tls
-SOURCE asn1.c bignum.c rsa.c x509v3.c tlsv1_client.c tlsv1_common.c
-SOURCEPATH ..\..\src\l2_packet
-SOURCE l2_packet_none.c
-SOURCEPATH ..\..\src\eap_peer
-SOURCE eap.c eap_methods.c
-SOURCE eap_md5.c eap_tls.c eap_mschapv2.c eap_peap.c eap_gtc.c
-SOURCE eap_ttls.c eap_otp.c eap_leap.c eap_tls_common.c eap_tlv.c
-SOURCE eap_fast.c eap_fast_pac.c
-SOURCEPATH ..\..\src\eap_common
-SOURCE eap_common.c
-
-LIBRARY euser.lib estlib.lib
diff --git a/wpa_supplicant/vs2005/eapol_test/eapol_test.vcproj b/wpa_supplicant/vs2005/eapol_test/eapol_test.vcproj
deleted file mode 100755
index ffe12c46ad34..000000000000
--- a/wpa_supplicant/vs2005/eapol_test/eapol_test.vcproj
+++ /dev/null
@@ -1,425 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="eapol_test"
- ProjectGUID="{0E3F2C6D-1372-48D6-BCAB-E584917C4DE3}"
- RootNamespace="eapol_test"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\..\src\crypto\aes_wrap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\base64.c"
- >
- </File>
- <File
- RelativePath="..\..\blacklist.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\chap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\common.c"
- >
- </File>
- <File
- RelativePath="..\..\config.c"
- >
- </File>
- <File
- RelativePath="..\..\config_file.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\crypto_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface_named_pipe.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_aka.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_gtc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_leap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_methods.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_otp.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_peap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_peap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_sim.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_sim_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tnc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_ttls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eapol_supp\eapol_supp_sm.c"
- >
- </File>
- <File
- RelativePath="..\..\eapol_test.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\eloop_win.c"
- >
- </File>
- <File
- RelativePath="..\..\events.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\ip_addr.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\l2_packet\l2_packet_winpcap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\ms_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\os_win32.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\pcsc_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\peerkey.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\pmksa_cache.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\preauth.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\radius\radius.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\radius\radius_client.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\rc4.c"
- >
- </File>
- <File
- RelativePath="..\..\scan.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\scan_helpers.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\sha1.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\tls_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\tncc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\wpa_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpa_debug.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa_ie.c"
- >
- </File>
- <File
- RelativePath="..\..\wpa_supplicant.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpabuf.c"
- >
- </File>
- <File
- RelativePath="..\..\wpas_glue.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/vs2005/win_if_list/win_if_list.vcproj b/wpa_supplicant/vs2005/win_if_list/win_if_list.vcproj
deleted file mode 100755
index 89122f80cc79..000000000000
--- a/wpa_supplicant/vs2005/win_if_list/win_if_list.vcproj
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="win_if_list"
- ProjectGUID="{9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}"
- RootNamespace="win_if_list"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\src\utils;C:\dev\WpdPack\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wpcap.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\..\src\utils;C:\dev\WpdPack\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wpcap.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\win_if_list.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/vs2005/wpa_cli/wpa_cli.vcproj b/wpa_supplicant/vs2005/wpa_cli/wpa_cli.vcproj
deleted file mode 100755
index 1cc31a6c487d..000000000000
--- a/wpa_supplicant/vs2005/wpa_cli/wpa_cli.vcproj
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="wpa_cli"
- ProjectGUID="{E3A7B181-22CC-4DA3-8410-6AD69879A9EC}"
- RootNamespace="wpa_cli"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\src\utils;..\..\..\src\common"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4244;4267"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\..\src\utils;..\..\..\src\common"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4267"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\..\src\utils\common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\os_win32.c"
- >
- </File>
- <File
- RelativePath="..\..\wpa_cli.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\wpa_ctrl.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/vs2005/wpa_passphrase/wpa_passphrase.vcproj b/wpa_supplicant/vs2005/wpa_passphrase/wpa_passphrase.vcproj
deleted file mode 100755
index 2a9a590aebff..000000000000
--- a/wpa_supplicant/vs2005/wpa_passphrase/wpa_passphrase.vcproj
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="wpa_passphrase"
- ProjectGUID="{ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}"
- RootNamespace="wpa_passphrase"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\src\utils;..\..\..\src\crypto;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS;INTERNAL_SHA1;INTERNAL_MD5"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4244;4267"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\..\src\utils;..\..\..\src\crypto;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS;INTERNAL_SHA1;INTERNAL_MD5"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4267"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\..\src\utils\common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\os_win32.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\sha1.c"
- >
- </File>
- <File
- RelativePath="..\..\wpa_passphrase.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/vs2005/wpa_supplicant.sln b/wpa_supplicant/vs2005/wpa_supplicant.sln
deleted file mode 100755
index 97b756652dad..000000000000
--- a/wpa_supplicant/vs2005/wpa_supplicant.sln
+++ /dev/null
@@ -1,52 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wpa_supplicant", "wpa_supplicant\wpa_supplicant.vcproj", "{8BCFDA77-AEDC-4168-8897-5B73105BBB87}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wpa_cli", "wpa_cli\wpa_cli.vcproj", "{E3A7B181-22CC-4DA3-8410-6AD69879A9EC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wpasvc", "wpasvc\wpasvc.vcproj", "{E2A4A85F-CA77-406D-8ABF-63EF94545ACC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wpa_passphrase", "wpa_passphrase\wpa_passphrase.vcproj", "{ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_if_list", "win_if_list\win_if_list.vcproj", "{9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eapol_test", "eapol_test\eapol_test.vcproj", "{0E3F2C6D-1372-48D6-BCAB-E584917C4DE3}"
-EndProject
-Global
- GlobalSection(DPCodeReviewSolutionGUID) = preSolution
- DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
- EndGlobalSection
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8BCFDA77-AEDC-4168-8897-5B73105BBB87}.Debug|Win32.ActiveCfg = Debug|Win32
- {8BCFDA77-AEDC-4168-8897-5B73105BBB87}.Debug|Win32.Build.0 = Debug|Win32
- {8BCFDA77-AEDC-4168-8897-5B73105BBB87}.Release|Win32.ActiveCfg = Release|Win32
- {8BCFDA77-AEDC-4168-8897-5B73105BBB87}.Release|Win32.Build.0 = Release|Win32
- {E3A7B181-22CC-4DA3-8410-6AD69879A9EC}.Debug|Win32.ActiveCfg = Debug|Win32
- {E3A7B181-22CC-4DA3-8410-6AD69879A9EC}.Debug|Win32.Build.0 = Debug|Win32
- {E3A7B181-22CC-4DA3-8410-6AD69879A9EC}.Release|Win32.ActiveCfg = Release|Win32
- {E3A7B181-22CC-4DA3-8410-6AD69879A9EC}.Release|Win32.Build.0 = Release|Win32
- {E2A4A85F-CA77-406D-8ABF-63EF94545ACC}.Debug|Win32.ActiveCfg = Debug|Win32
- {E2A4A85F-CA77-406D-8ABF-63EF94545ACC}.Debug|Win32.Build.0 = Debug|Win32
- {E2A4A85F-CA77-406D-8ABF-63EF94545ACC}.Release|Win32.ActiveCfg = Release|Win32
- {E2A4A85F-CA77-406D-8ABF-63EF94545ACC}.Release|Win32.Build.0 = Release|Win32
- {ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}.Debug|Win32.ActiveCfg = Debug|Win32
- {ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}.Debug|Win32.Build.0 = Debug|Win32
- {ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}.Release|Win32.ActiveCfg = Release|Win32
- {ADBE4EA8-F0C5-40C2-AE89-C56D0F2EC1DF}.Release|Win32.Build.0 = Release|Win32
- {9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}.Debug|Win32.ActiveCfg = Debug|Win32
- {9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}.Debug|Win32.Build.0 = Debug|Win32
- {9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}.Release|Win32.ActiveCfg = Release|Win32
- {9E87CD9C-60CE-4533-85CF-85CA3A9BF26A}.Release|Win32.Build.0 = Release|Win32
- {0E3F2C6D-1372-48D6-BCAB-E584917C4DE3}.Debug|Win32.ActiveCfg = Debug|Win32
- {0E3F2C6D-1372-48D6-BCAB-E584917C4DE3}.Debug|Win32.Build.0 = Debug|Win32
- {0E3F2C6D-1372-48D6-BCAB-E584917C4DE3}.Release|Win32.ActiveCfg = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/wpa_supplicant/vs2005/wpa_supplicant/wpa_supplicant.vcproj b/wpa_supplicant/vs2005/wpa_supplicant/wpa_supplicant.vcproj
deleted file mode 100755
index 2227f32de818..000000000000
--- a/wpa_supplicant/vs2005/wpa_supplicant/wpa_supplicant.vcproj
+++ /dev/null
@@ -1,421 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="wpa_supplicant"
- ProjectGUID="{8BCFDA77-AEDC-4168-8897-5B73105BBB87}"
- RootNamespace="wpa_supplicant"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wbemuuid.lib ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wbemuuid.lib ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\..\src\crypto\aes_wrap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\base64.c"
- >
- </File>
- <File
- RelativePath="..\..\blacklist.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\chap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\common.c"
- >
- </File>
- <File
- RelativePath="..\..\config.c"
- >
- </File>
- <File
- RelativePath="..\..\config_file.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\crypto_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface_named_pipe.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\driver_ndis.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\driver_ndis_.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\drivers.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_gtc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_leap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_methods.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_otp.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_peap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_peap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tnc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_ttls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eapol_supp\eapol_supp_sm.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\eloop_win.c"
- >
- </File>
- <File
- RelativePath="..\..\events.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\l2_packet\l2_packet_winpcap.c"
- >
- </File>
- <File
- RelativePath="..\..\main.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md4.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\ms_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\ndis_events.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\os_win32.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\pcsc_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\peerkey.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\pmksa_cache.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\preauth.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\rc4.c"
- >
- </File>
- <File
- RelativePath="..\..\scan.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\scan_helpers.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\sha1.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\tls_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\tncc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\wpa_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpa_debug.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa_ie.c"
- >
- </File>
- <File
- RelativePath="..\..\wpa_supplicant.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpabuf.c"
- >
- </File>
- <File
- RelativePath="..\..\wpas_glue.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/vs2005/wpasvc/wpasvc.vcproj b/wpa_supplicant/vs2005/wpasvc/wpasvc.vcproj
deleted file mode 100755
index 676f1446c8ba..000000000000
--- a/wpa_supplicant/vs2005/wpasvc/wpasvc.vcproj
+++ /dev/null
@@ -1,421 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="wpasvc"
- ProjectGUID="{E2A4A85F-CA77-406D-8ABF-63EF94545ACC}"
- RootNamespace="wpasvc"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wbemuuid.lib ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..;..\..\..\src;..\..\..\src\utils;..\..\..\src\common;..\..\..\src\crypto;..\..\..\src\rsn_supp;C:\dev\WpdPack\include;C:\dev\openssl\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;CONFIG_WIN32_DEFAULTS"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4267;4311"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wbemuuid.lib ws2_32.lib Crypt32.lib Winscard.lib Packet.lib wpcap.lib libeay32MT.lib ssleay32Mt.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="C:\dev\WpdPack\lib;C:\dev\openssl\lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\..\..\src\crypto\aes_wrap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\base64.c"
- >
- </File>
- <File
- RelativePath="..\..\blacklist.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\chap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\common.c"
- >
- </File>
- <File
- RelativePath="..\..\config.c"
- >
- </File>
- <File
- RelativePath="..\..\config_winreg.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\crypto_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface.c"
- >
- </File>
- <File
- RelativePath="..\..\ctrl_iface_named_pipe.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\driver_ndis.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\driver_ndis_.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\drivers.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_gtc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_leap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_methods.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_otp.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_peap.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_common\eap_peap_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tls_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_tnc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\eap_ttls.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eapol_supp\eapol_supp_sm.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\eloop_win.c"
- >
- </File>
- <File
- RelativePath="..\..\events.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\l2_packet\l2_packet_winpcap.c"
- >
- </File>
- <File
- RelativePath="..\..\main_winsvc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md4.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\md5.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\ms_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\mschapv2.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\ndis_events.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\os_win32.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\pcsc_funcs.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\peerkey.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\pmksa_cache.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\preauth.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\rc4.c"
- >
- </File>
- <File
- RelativePath="..\..\scan.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\drivers\scan_helpers.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\sha1.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\crypto\tls_openssl.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\eap_peer\tncc.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\common\wpa_common.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpa_debug.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\rsn_supp\wpa_ie.c"
- >
- </File>
- <File
- RelativePath="..\..\wpa_supplicant.c"
- >
- </File>
- <File
- RelativePath="..\..\..\src\utils\wpabuf.c"
- >
- </File>
- <File
- RelativePath="..\..\wpas_glue.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/wpa_supplicant/win_example.reg b/wpa_supplicant/win_example.reg
deleted file mode 100755
index 6e42037e143c..000000000000
--- a/wpa_supplicant/win_example.reg
+++ /dev/null
@@ -1,42 +0,0 @@
-REGEDIT4
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant]
-"debug_level"=dword:00000000
-"debug_show_keys"=dword:00000001
-"debug_timestamp"=dword:00000000
-"debug_use_file"=dword:00000000
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs]
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test]
-"ap_scan"=dword:00000002
-"update_config"=dword:00000001
-"uuid"="12345678-9abc-def0-1234-56789abcdef0"
-"device_name"="Wireless Client"
-"manufacturer"="Company"
-"model_name"="cmodel"
-"serial_number"="12345"
-"device_type"="1-0050F204-1"
-"os_version"="01020300"
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\blobs]
-"testblob"=hex:01,02,03,04,05
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks]
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks\0000]
-"ssid"="\"example network\""
-"key_mgmt"="WPA-PSK"
-"psk"="\"secret password\""
-"pairwise"="CCMP"
-"group"="CCMP"
-"proto"="WPA"
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\interfaces]
-
-[HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\interfaces\0000]
-"adapter"="{A7627643-C310-49E5-BD89-7E77709C04AB}"
-"config"="test"
-"ctrl_interface"=""
-"skip_on_error"=dword:00000000
-
diff --git a/wpa_supplicant/win_if_list.c b/wpa_supplicant/win_if_list.c
deleted file mode 100644
index 0e1532ed71f1..000000000000
--- a/wpa_supplicant/win_if_list.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * win_if_list - Display network interfaces with description (for Windows)
- * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- *
- * This small tool is for the Windows build to provide an easy way of fetching
- * a list of available network interfaces.
- */
-
-#include "includes.h"
-#include <stdio.h>
-#ifdef CONFIG_USE_NDISUIO
-#include <winsock2.h>
-#include <ntddndis.h>
-#else /* CONFIG_USE_NDISUIO */
-#include "pcap.h"
-#include <winsock.h>
-#endif /* CONFIG_USE_NDISUIO */
-
-#ifdef CONFIG_USE_NDISUIO
-
-/* from nuiouser.h */
-#define FSCTL_NDISUIO_BASE FILE_DEVICE_NETWORK
-
-#define _NDISUIO_CTL_CODE(_Function, _Method, _Access) \
- CTL_CODE(FSCTL_NDISUIO_BASE, _Function, _Method, _Access)
-
-#define IOCTL_NDISUIO_QUERY_BINDING \
- _NDISUIO_CTL_CODE(0x203, METHOD_BUFFERED, \
- FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
-#define IOCTL_NDISUIO_BIND_WAIT \
- _NDISUIO_CTL_CODE(0x204, METHOD_BUFFERED, \
- FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
-typedef struct _NDISUIO_QUERY_BINDING
-{
- ULONG BindingIndex;
- ULONG DeviceNameOffset;
- ULONG DeviceNameLength;
- ULONG DeviceDescrOffset;
- ULONG DeviceDescrLength;
-} NDISUIO_QUERY_BINDING, *PNDISUIO_QUERY_BINDING;
-
-
-static HANDLE ndisuio_open(void)
-{
- DWORD written;
- HANDLE h;
-
- h = CreateFile(TEXT("\\\\.\\\\Ndisuio"),
- GENERIC_READ | GENERIC_WRITE, 0, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
- INVALID_HANDLE_VALUE);
- if (h == INVALID_HANDLE_VALUE)
- return h;
-
-#ifndef _WIN32_WCE
- if (!DeviceIoControl(h, IOCTL_NDISUIO_BIND_WAIT, NULL, 0, NULL, 0,
- &written, NULL)) {
- printf("IOCTL_NDISUIO_BIND_WAIT failed: %d",
- (int) GetLastError());
- CloseHandle(h);
- return INVALID_HANDLE_VALUE;
- }
-#endif /* _WIN32_WCE */
-
- return h;
-}
-
-
-static void ndisuio_query_bindings(HANDLE ndisuio)
-{
- NDISUIO_QUERY_BINDING *b;
- size_t blen = sizeof(*b) + 1024;
- int i, error;
- DWORD written;
- char name[256], desc[256];
- WCHAR *pos;
- size_t j, len;
-
- b = malloc(blen);
- if (b == NULL)
- return;
-
- for (i = 0; ; i++) {
- memset(b, 0, blen);
- b->BindingIndex = i;
- if (!DeviceIoControl(ndisuio, IOCTL_NDISUIO_QUERY_BINDING,
- b, sizeof(NDISUIO_QUERY_BINDING), b,
- (DWORD) blen, &written, NULL)) {
- error = (int) GetLastError();
- if (error == ERROR_NO_MORE_ITEMS)
- break;
- printf("IOCTL_NDISUIO_QUERY_BINDING failed: %d",
- error);
- break;
- }
-
- pos = (WCHAR *) ((char *) b + b->DeviceNameOffset);
- len = b->DeviceNameLength;
- if (len >= sizeof(name))
- len = sizeof(name) - 1;
- for (j = 0; j < len; j++)
- name[j] = (char) pos[j];
- name[len] = '\0';
-
- pos = (WCHAR *) ((char *) b + b->DeviceDescrOffset);
- len = b->DeviceDescrLength;
- if (len >= sizeof(desc))
- len = sizeof(desc) - 1;
- for (j = 0; j < len; j++)
- desc[j] = (char) pos[j];
- desc[len] = '\0';
-
- printf("ifname: %s\ndescription: %s\n\n", name, desc);
- }
-
- free(b);
-}
-
-
-static void ndisuio_enum_bindings(void)
-{
- HANDLE ndisuio = ndisuio_open();
- if (ndisuio == INVALID_HANDLE_VALUE)
- return;
-
- ndisuio_query_bindings(ndisuio);
- CloseHandle(ndisuio);
-}
-
-#else /* CONFIG_USE_NDISUIO */
-
-static void show_dev(pcap_if_t *dev)
-{
- printf("ifname: %s\ndescription: %s\n\n",
- dev->name, dev->description);
-}
-
-
-static void pcap_enum_devs(void)
-{
- pcap_if_t *devs, *dev;
- char err[PCAP_ERRBUF_SIZE + 1];
-
- if (pcap_findalldevs(&devs, err) < 0) {
- fprintf(stderr, "Error - pcap_findalldevs: %s\n", err);
- return;
- }
-
- for (dev = devs; dev; dev = dev->next) {
- show_dev(dev);
- }
-
- pcap_freealldevs(devs);
-}
-
-#endif /* CONFIG_USE_NDISUIO */
-
-
-int main(int argc, char *argv[])
-{
-#ifdef CONFIG_USE_NDISUIO
- ndisuio_enum_bindings();
-#else /* CONFIG_USE_NDISUIO */
- pcap_enum_devs();
-#endif /* CONFIG_USE_NDISUIO */
-
- return 0;
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/.gitignore b/wpa_supplicant/wpa_gui-qt4/.gitignore
deleted file mode 100644
index efcb6660002e..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.moc
-.obj
-.ui
-Makefile
-wpa_gui
-qrc_icons.cpp
diff --git a/wpa_supplicant/wpa_gui-qt4/addinterface.cpp b/wpa_supplicant/wpa_gui-qt4/addinterface.cpp
deleted file mode 100644
index 02fecfea42cd..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/addinterface.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * wpa_gui - AddInterface class
- * Copyright (c) 2008, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include <cstdio>
-#include "wpa_ctrl.h"
-
-#include <QMessageBox>
-
-#include "wpagui.h"
-#include "addinterface.h"
-
-#ifdef CONFIG_NATIVE_WINDOWS
-#include <windows.h>
-
-#ifndef WPA_KEY_ROOT
-#define WPA_KEY_ROOT HKEY_LOCAL_MACHINE
-#endif
-#ifndef WPA_KEY_PREFIX
-#define WPA_KEY_PREFIX TEXT("SOFTWARE\\wpa_supplicant")
-#endif
-#endif /* CONFIG_NATIVE_WINDOWS */
-
-
-AddInterface::AddInterface(WpaGui *_wpagui, QWidget *parent)
- : QDialog(parent), wpagui(_wpagui)
-{
- setWindowTitle("Select network interface to add");
- resize(400, 200);
- vboxLayout = new QVBoxLayout(this);
-
- interfaceWidget = new QTreeWidget(this);
- interfaceWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- interfaceWidget->setUniformRowHeights(true);
- interfaceWidget->setSortingEnabled(true);
- interfaceWidget->setColumnCount(3);
- interfaceWidget->headerItem()->setText(0, "driver");
- interfaceWidget->headerItem()->setText(1, "interface");
- interfaceWidget->headerItem()->setText(2, "description");
- interfaceWidget->setItemsExpandable(FALSE);
- interfaceWidget->setRootIsDecorated(FALSE);
- vboxLayout->addWidget(interfaceWidget);
-
- connect(interfaceWidget,
- SIGNAL(itemActivated(QTreeWidgetItem *, int)), this,
- SLOT(interfaceSelected(QTreeWidgetItem *)));
-
- addInterfaces();
-}
-
-
-void AddInterface::addInterfaces()
-{
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- struct wpa_ctrl *ctrl;
- int ret;
- char buf[2048];
- size_t len;
-
- ctrl = wpa_ctrl_open(NULL);
- if (ctrl == NULL)
- return;
-
- len = sizeof(buf) - 1;
- ret = wpa_ctrl_request(ctrl, "INTERFACE_LIST", 14, buf, &len, NULL);
- if (ret < 0) {
- wpa_ctrl_close(ctrl);
- return;
- }
- buf[len] = '\0';
-
- wpa_ctrl_close(ctrl);
-
- QString ifaces(buf);
- QStringList lines = ifaces.split(QRegExp("\\n"));
- for (QStringList::Iterator it = lines.begin();
- it != lines.end(); it++) {
- QStringList arg = (*it).split(QChar('\t'));
- if (arg.size() < 3)
- continue;
- QTreeWidgetItem *item = new QTreeWidgetItem(interfaceWidget);
- if (!item)
- break;
-
- item->setText(0, arg[0]);
- item->setText(1, arg[1]);
- item->setText(2, arg[2]);
- }
-
- interfaceWidget->resizeColumnToContents(0);
- interfaceWidget->resizeColumnToContents(1);
- interfaceWidget->resizeColumnToContents(2);
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
-}
-
-
-#ifdef CONFIG_NATIVE_WINDOWS
-bool AddInterface::addRegistryInterface(const QString &ifname)
-{
- HKEY hk, ihk;
- LONG ret;
- int id, tmp;
- TCHAR name[10];
- DWORD val, i;
-
- ret = RegOpenKeyEx(WPA_KEY_ROOT, WPA_KEY_PREFIX TEXT("\\interfaces"),
- 0, KEY_ENUMERATE_SUB_KEYS | KEY_CREATE_SUB_KEY,
- &hk);
- if (ret != ERROR_SUCCESS)
- return false;
-
- id = -1;
-
- for (i = 0; ; i++) {
- TCHAR name[255];
- DWORD namelen;
-
- namelen = 255;
- ret = RegEnumKeyEx(hk, i, name, &namelen, NULL, NULL, NULL,
- NULL);
-
- if (ret == ERROR_NO_MORE_ITEMS)
- break;
-
- if (ret != ERROR_SUCCESS)
- break;
-
- if (namelen >= 255)
- namelen = 255 - 1;
- name[namelen] = '\0';
-
-#ifdef UNICODE
- QString s((QChar *) name, namelen);
-#else /* UNICODE */
- QString s(name);
-#endif /* UNICODE */
- tmp = s.toInt();
- if (tmp > id)
- id = tmp;
- }
-
- id += 1;
-
-#ifdef UNICODE
- wsprintf(name, L"%04d", id);
-#else /* UNICODE */
- os_snprintf(name, sizeof(name), "%04d", id);
-#endif /* UNICODE */
- ret = RegCreateKeyEx(hk, name, 0, NULL, 0, KEY_WRITE, NULL, &ihk,
- NULL);
- RegCloseKey(hk);
- if (ret != ERROR_SUCCESS)
- return false;
-
-#ifdef UNICODE
- RegSetValueEx(ihk, TEXT("adapter"), 0, REG_SZ,
- (LPBYTE) ifname.unicode(),
- (ifname.length() + 1) * sizeof(TCHAR));
-
-#else /* UNICODE */
- RegSetValueEx(ihk, TEXT("adapter"), 0, REG_SZ,
- (LPBYTE) ifname.toLocal8Bit(), ifname.length() + 1);
-#endif /* UNICODE */
- RegSetValueEx(ihk, TEXT("config"), 0, REG_SZ,
- (LPBYTE) TEXT("default"), 8 * sizeof(TCHAR));
- RegSetValueEx(ihk, TEXT("ctrl_interface"), 0, REG_SZ,
- (LPBYTE) TEXT(""), 1 * sizeof(TCHAR));
- val = 1;
- RegSetValueEx(ihk, TEXT("skip_on_error"), 0, REG_DWORD, (LPBYTE) &val,
- sizeof(val));
-
- RegCloseKey(ihk);
- return true;
-}
-#endif /* CONFIG_NATIVE_WINDOWS */
-
-
-void AddInterface::interfaceSelected(QTreeWidgetItem *sel)
-{
- if (!sel)
- return;
-
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- struct wpa_ctrl *ctrl;
- int ret;
- char buf[20], cmd[256];
- size_t len;
-
- /*
- * INTERFACE_ADD <ifname>TAB<confname>TAB<driver>TAB<ctrl_interface>TAB
- * <driver_param>TAB<bridge_name>
- */
- snprintf(cmd, sizeof(cmd),
- "INTERFACE_ADD %s\t%s\t%s\t%s\t%s\t%s",
- sel->text(1).toAscii().constData(),
- "default",
- sel->text(0).toAscii().constData(),
- "yes", "", "");
- cmd[sizeof(cmd) - 1] = '\0';
-
- ctrl = wpa_ctrl_open(NULL);
- if (ctrl == NULL)
- return;
-
- len = sizeof(buf) - 1;
- ret = wpa_ctrl_request(ctrl, cmd, strlen(cmd), buf, &len, NULL);
- wpa_ctrl_close(ctrl);
-
- if (ret < 0) {
- QMessageBox::warning(this, "wpa_gui",
- "Add interface command could not be "
- "completed.");
- return;
- }
-
- buf[len] = '\0';
- if (buf[0] != 'O' || buf[1] != 'K') {
- QMessageBox::warning(this, "wpa_gui",
- "Failed to add the interface.");
- return;
- }
-
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
-
-#ifdef CONFIG_NATIVE_WINDOWS
- if (!addRegistryInterface(sel->text(1))) {
- QMessageBox::information(this, "wpa_gui",
- "Failed to add the interface into "
- "registry.");
- }
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- wpagui->selectAdapter(sel->text(1));
- close();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/addinterface.h b/wpa_supplicant/wpa_gui-qt4/addinterface.h
deleted file mode 100644
index 9d9476a46d99..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/addinterface.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * wpa_gui - AddInterface class
- * Copyright (c) 2008, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef ADDINTERFACE_H
-#define ADDINTERFACE_H
-
-#include <QObject>
-
-#include <QtGui/QDialog>
-#include <QtGui/QTreeWidget>
-#include <QtGui/QVBoxLayout>
-
-class WpaGui;
-
-class AddInterface : public QDialog
-{
- Q_OBJECT
-
-public:
- AddInterface(WpaGui *_wpagui, QWidget *parent = 0);
-
-public slots:
- virtual void interfaceSelected(QTreeWidgetItem *sel);
-
-private:
- void addInterfaces();
- bool addRegistryInterface(const QString &ifname);
-
- QVBoxLayout *vboxLayout;
- QTreeWidget *interfaceWidget;
- WpaGui *wpagui;
-};
-
-#endif /* ADDINTERFACE_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/eventhistory.cpp b/wpa_supplicant/wpa_gui-qt4/eventhistory.cpp
deleted file mode 100644
index 46deb96a53d9..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/eventhistory.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * wpa_gui - EventHistory class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include <QHeaderView>
-#include <QScrollBar>
-
-#include "eventhistory.h"
-
-
-int EventListModel::rowCount(const QModelIndex &) const
-{
- return msgList.count();
-}
-
-
-int EventListModel::columnCount(const QModelIndex &) const
-{
- return 2;
-}
-
-
-QVariant EventListModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid())
- return QVariant();
-
- if (role == Qt::DisplayRole)
- if (index.column() == 0) {
- if (index.row() >= timeList.size())
- return QVariant();
- return timeList.at(index.row());
- } else {
- if (index.row() >= msgList.size())
- return QVariant();
- return msgList.at(index.row());
- }
- else
- return QVariant();
-}
-
-
-QVariant EventListModel::headerData(int section, Qt::Orientation orientation,
- int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- if (orientation == Qt::Horizontal) {
- switch (section) {
- case 0:
- return QString("Timestamp");
- case 1:
- return QString("Message");
- default:
- return QVariant();
- }
- } else
- return QString("%1").arg(section);
-}
-
-
-void EventListModel::addEvent(QString time, QString msg)
-{
- beginInsertRows(QModelIndex(), msgList.size(), msgList.size() + 1);
- timeList << time;
- msgList << msg;
- endInsertRows();
-}
-
-
-EventHistory::EventHistory(QWidget *parent, const char *, bool, Qt::WFlags)
- : QDialog(parent)
-{
- setupUi(this);
-
- connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
-
- eventListView->setItemsExpandable(FALSE);
- eventListView->setRootIsDecorated(FALSE);
- elm = new EventListModel(parent);
- eventListView->setModel(elm);
-}
-
-
-EventHistory::~EventHistory()
-{
- destroy();
- delete elm;
-}
-
-
-void EventHistory::languageChange()
-{
- retranslateUi(this);
-}
-
-
-void EventHistory::addEvents(WpaMsgList msgs)
-{
- WpaMsgList::iterator it;
- for (it = msgs.begin(); it != msgs.end(); it++)
- addEvent(*it);
-}
-
-
-void EventHistory::addEvent(WpaMsg msg)
-{
- bool scroll = true;
-
- if (eventListView->verticalScrollBar()->value() <
- eventListView->verticalScrollBar()->maximum())
- scroll = false;
-
- elm->addEvent(msg.getTimestamp().toString("yyyy-MM-dd hh:mm:ss.zzz"),
- msg.getMsg());
-
- if (scroll)
- eventListView->scrollToBottom();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/eventhistory.h b/wpa_supplicant/wpa_gui-qt4/eventhistory.h
deleted file mode 100644
index 40dff6d6d779..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/eventhistory.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * wpa_gui - EventHistory class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef EVENTHISTORY_H
-#define EVENTHISTORY_H
-
-#include <QObject>
-#include "ui_eventhistory.h"
-
-
-class EventListModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- EventListModel(QObject *parent = 0)
- : QAbstractTableModel(parent) {}
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role) const;
- QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
- void addEvent(QString time, QString msg);
-
-private:
- QStringList timeList;
- QStringList msgList;
-};
-
-
-class EventHistory : public QDialog, public Ui::EventHistory
-{
- Q_OBJECT
-
-public:
- EventHistory(QWidget *parent = 0, const char *name = 0,
- bool modal = false, Qt::WFlags fl = 0);
- ~EventHistory();
-
-public slots:
- virtual void addEvents(WpaMsgList msgs);
- virtual void addEvent(WpaMsg msg);
-
-protected slots:
- virtual void languageChange();
-
-private:
- EventListModel *elm;
-};
-
-#endif /* EVENTHISTORY_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/eventhistory.ui b/wpa_supplicant/wpa_gui-qt4/eventhistory.ui
deleted file mode 100644
index afe9149cfa0f..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/eventhistory.ui
+++ /dev/null
@@ -1,61 +0,0 @@
-<ui version="4.0" >
- <class>EventHistory</class>
- <widget class="QDialog" name="EventHistory" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>533</width>
- <height>285</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Event history</string>
- </property>
- <layout class="QGridLayout" >
- <item row="0" column="0" colspan="2" >
- <widget class="QTreeView" name="eventListView" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="verticalScrollBarPolicy" >
- <enum>Qt::ScrollBarAlwaysOn</enum>
- </property>
- <property name="selectionMode" >
- <enum>QAbstractItemView::NoSelection</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="closeButton" >
- <property name="text" >
- <string>Close</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <includes>
- <include location="local" >wpamsg.h</include>
- </includes>
- <resources/>
- <connections/>
-</ui>
diff --git a/wpa_supplicant/wpa_gui-qt4/icons.qrc b/wpa_supplicant/wpa_gui-qt4/icons.qrc
deleted file mode 100644
index 93e94fce24cc..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/icons.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/icons" >
- <file alias="wpa_gui.svg">icons/wpa_gui.svg</file>
- </qresource>
-</RCC>
diff --git a/wpa_supplicant/wpa_gui-qt4/icons/Makefile b/wpa_supplicant/wpa_gui-qt4/icons/Makefile
deleted file mode 100644
index cb5c65e701f4..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/icons/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/make -f
-
-NAME := wpa_gui
-SVG := $(NAME).svg
-SIZES := 16x16 22x22 32x32 48x48 64x64 128x128
-ICONS := $(addsuffix .png,$(SIZES))
-ICONS += $(addsuffix .xpm,$(NAME) $(NAME)-16)
-
-all: $(ICONS)
-
-%.png:
- mkdir -p hicolor/$(@:.png=)/apps/
- inkscape $(SVG) --without-gui \
- --export-width=$(word 1,$(subst x, ,$(@:.png=))) \
- --export-height=$(word 2,$(subst x, ,$(@:.png=))) \
- --export-png=hicolor/$(@:.png=)/apps/$(NAME).png
-
-$(NAME).xpm:
- mkdir -p pixmaps/
- convert hicolor/32x32/apps/$(NAME).png pixmaps/$@
-
-$(NAME)-16.xpm:
- mkdir -p pixmaps/
- convert hicolor/16x16/apps/$(NAME).png pixmaps/$@
-
-clean:
- $(RM) -r pixmaps hicolor
diff --git a/wpa_supplicant/wpa_gui-qt4/icons/README b/wpa_supplicant/wpa_gui-qt4/icons/README
deleted file mode 100644
index 1584eb51d62e..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/icons/README
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright (c) 2008 Bernard Gray <bernard.gray@gmail.com>
-
-The wpa_gui icon is licensed under the GPL version 2. Alternatively, the icon
-may be distributed under the terms of BSD license.
-
-To convert the svg icon to other formats, make sure inkscape and imagemagick
-are installed and use `make' to create various sized png and xpm icons.
diff --git a/wpa_supplicant/wpa_gui-qt4/icons/wpa_gui.svg b/wpa_supplicant/wpa_gui-qt4/icons/wpa_gui.svg
deleted file mode 100644
index b3abf0a288d8..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/icons/wpa_gui.svg
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.0"
- width="128"
- height="128"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.46"
- sodipodi:docname="wpa_gui.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <metadata
- id="metadata47">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- inkscape:window-height="771"
- inkscape:window-width="640"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0.0"
- guidetolerance="10.0"
- gridtolerance="10.0"
- objecttolerance="10.0"
- borderopacity="1.0"
- bordercolor="#666666"
- pagecolor="#ffffff"
- id="base"
- showgrid="false"
- inkscape:zoom="4.2421875"
- inkscape:cx="64"
- inkscape:cy="64"
- inkscape:window-x="634"
- inkscape:window-y="0"
- inkscape:current-layer="svg2" />
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 64 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="128 : 64 : 1"
- inkscape:persp3d-origin="64 : 42.666667 : 1"
- id="perspective49" />
- <linearGradient
- id="linearGradient39133">
- <stop
- id="stop39135"
- style="stop-color:#252525;stop-opacity:1"
- offset="0" />
- <stop
- id="stop39137"
- style="stop-color:#515151;stop-opacity:1"
- offset="0" />
- <stop
- id="stop39139"
- style="stop-color:#878787;stop-opacity:1"
- offset="0.28677997" />
- <stop
- id="stop39141"
- style="stop-color:#000000;stop-opacity:1"
- offset="0.92151743" />
- <stop
- id="stop39143"
- style="stop-color:#ffffff;stop-opacity:0.73786408"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient39119">
- <stop
- id="stop39121"
- style="stop-color:#ffffff;stop-opacity:0.82905984"
- offset="0" />
- <stop
- id="stop39123"
- style="stop-color:#ffffff;stop-opacity:0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient39106">
- <stop
- id="stop39108"
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0" />
- <stop
- id="stop39110"
- style="stop-color:#a8a8a8;stop-opacity:0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient39094">
- <stop
- id="stop39096"
- style="stop-color:#000000;stop-opacity:1"
- offset="0" />
- <stop
- id="stop39098"
- style="stop-color:#333333;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient39062">
- <stop
- id="stop39064"
- style="stop-color:#252525;stop-opacity:1"
- offset="0" />
- <stop
- id="stop39086"
- style="stop-color:#515151;stop-opacity:1"
- offset="0.21101321" />
- <stop
- id="stop39088"
- style="stop-color:#878787;stop-opacity:1"
- offset="0.75" />
- <stop
- id="stop39090"
- style="stop-color:#6c6c6c;stop-opacity:1"
- offset="0.875" />
- <stop
- id="stop39066"
- style="stop-color:#1e1e1e;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="4"
- y1="40"
- x2="124"
- y2="60"
- id="linearGradient39068"
- xlink:href="#linearGradient39062"
- gradientUnits="userSpaceOnUse" />
- <radialGradient
- cx="100.70589"
- cy="96"
- r="60"
- fx="158.07428"
- fy="95.718063"
- id="radialGradient39100"
- xlink:href="#linearGradient39094"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.7837903e-8,-1,0.99999999,-2.1864248e-6,-32.000004,164.7061)" />
- <radialGradient
- cx="100.44444"
- cy="34.363636"
- r="32"
- fx="83.18"
- fy="34.228985"
- id="radialGradient39104"
- xlink:href="#linearGradient39106"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.1472435e-6,1.0227273,-0.87499999,-9.5061964e-8,94.067865,-4.7272712)" />
- <radialGradient
- cx="75.999977"
- cy="-2.7730541"
- r="48"
- fx="55.266491"
- fy="-2.5338216"
- id="radialGradient39125"
- xlink:href="#linearGradient39119"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.83333324,-1.6666667,2.518705e-6,59.378243,-35.333302)" />
- <radialGradient
- cx="64.066589"
- cy="63.713329"
- r="60"
- fx="64.066589"
- fy="63.713329"
- id="radialGradient39131"
- xlink:href="#linearGradient39133"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.1333333,5.1768857e-8,5.2556881e-6,1.1666667,-8.6091298,-10.332226)" />
- <filter
- id="filter39153">
- <feGaussianBlur
- id="feGaussianBlur39155"
- stdDeviation="2.28"
- inkscape:collect="always" />
- </filter>
- <filter
- id="filter39159">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.68"
- id="feGaussianBlur39161" />
- </filter>
- </defs>
- <g
- id="layer1"
- style="display:inline">
- <path
- d="M 29,4 C 15.147058,4 4,15.14706 4,29 l 0,70 c 0,13.85294 11.147058,25 25,25 l 70,0 c 13.85294,0 25,-11.14706 25,-25 l 0,-70 C 124,15.14706 112.85294,4 99,4 L 29,4 z"
- id="path39151"
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter39153)" />
- <path
- d="M 29,4 C 15.147058,4 4,15.14706 4,29 l 0,70 c 0,13.85294 11.147058,25 25,25 l 70,0 c 13.85294,0 25,-11.14706 25,-25 l 0,-70 C 124,15.14706 112.85294,4 99,4 L 29,4 z"
- id="path39157"
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter39159)" />
- <rect
- width="120"
- height="120"
- ry="25.00531"
- x="4"
- y="0"
- id="rect2573"
- style="opacity:1;fill:url(#radialGradient39100);fill-opacity:1;stroke:none" />
- <path
- d="M 29,0 C 15.147058,0 4,11.14706 4,25 l 0,70 c 0,13.85294 11.147058,25 25,25 l 70,0 c 13.85294,0 25,-11.14706 25,-25 l 0,-70 C 124,11.14706 112.85294,0 99,0 L 29,0 z"
- id="path39127"
- style="opacity:0.20512821;fill:url(#radialGradient39131);fill-opacity:1;stroke:none" />
- <path
- d="m 44,68 40,0 12,40 c -20,7.27273 -44,7.27273 -64,0 L 44,68 z"
- id="path39102"
- style="opacity:0.53418801;fill:url(#radialGradient39104);fill-opacity:1;stroke:none" />
- <path
- d="M 25.339207,12 C 52,8 76,8 102.66079,12 107.83471,12 112,16.165286 112,21.339207 L 116,52 C 100,73.339207 28,73.339207 12,52 L 16,21.339207 C 16,16.165286 20.165286,12 25.339207,12 z"
- id="rect39116"
- style="opacity:0.92307691;fill:url(#radialGradient39125);fill-opacity:1;stroke:none" />
- <path
- d="M 29,8 C 15.147058,8 4,19.14706 4,33 l 0,70 c 0,13.85294 11.147058,25 25,25 l 70,0 c 13.85294,0 25,-11.14706 25,-25 l 0,-70 C 124,19.14706 112.85294,8 99,8 L 29,8 z"
- id="path39147"
- style="opacity:0.20512821;fill:#000000;fill-opacity:1;stroke:none" />
- <path
- d="M 29,0 C 15.147058,0 4,11.147058 4,25 l 0,70 c 0,13.85294 11.147058,25 25,25 l 70,0 c 13.85294,0 25,-11.14706 25,-25 l 0,-70 C 124,11.147058 112.85294,0 99,0 L 29,0 z m 0,4 70,0 c 11.70613,0 21,9.293869 21,21 l 0,70 c 0,11.70613 -9.29387,21 -21,21 l -70,0 C 17.293869,116 8,106.70613 8,95 L 8,25 C 8,13.293869 17.293869,4 29,4 z"
- id="rect39029"
- style="opacity:1;fill:url(#linearGradient39068);fill-opacity:1;stroke:none" />
- <path
- d="M 66.35081,74.771345 A 36,36 0 1 1 54.34964,35.777782"
- transform="matrix(-0.16680323,0.53082142,-0.53082142,-0.16680323,103.31027,53.117897)"
- id="path3351"
- style="opacity:1;fill:none;stroke:#ffffff;stroke-width:21.56673813;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="m 36,56 a 4,4 0 1 1 -8,0 4,4 0 1 1 8,0 z"
- transform="matrix(1.4851301,0,0,1.4851301,16.475837,-23.948973)"
- id="path3353"
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none" />
- <path
- d="M 66.35081,74.771345 A 36,36 0 1 1 54.34964,35.777782"
- transform="matrix(-0.35033273,1.1148712,-1.1148712,-0.35033273,146.5624,46.88078)"
- id="path2622"
- style="opacity:1;fill:none;stroke:#ffffff;stroke-width:10.26852894;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
-</svg>
diff --git a/wpa_supplicant/wpa_gui-qt4/icons_png.qrc b/wpa_supplicant/wpa_gui-qt4/icons_png.qrc
deleted file mode 100644
index 09f3d962008b..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/icons_png.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/icons" >
- <file alias="wpa_gui.png">icons/hicolor/16x16/apps/wpa_gui.png</file>
- </qresource>
-</RCC>
diff --git a/wpa_supplicant/wpa_gui-qt4/main.cpp b/wpa_supplicant/wpa_gui-qt4/main.cpp
deleted file mode 100644
index 9585e1ef0b64..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/main.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * wpa_gui - Application startup
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifdef CONFIG_NATIVE_WINDOWS
-#include <winsock.h>
-#endif /* CONFIG_NATIVE_WINDOWS */
-#include <QApplication>
-#include "wpagui.h"
-
-
-class WpaGuiApp : public QApplication
-{
-public:
- WpaGuiApp(int &argc, char **argv);
-
- virtual void saveState(QSessionManager &manager);
-
- WpaGui *w;
-};
-
-WpaGuiApp::WpaGuiApp(int &argc, char **argv) : QApplication(argc, argv)
-{
-}
-
-void WpaGuiApp::saveState(QSessionManager &manager)
-{
- QApplication::saveState(manager);
- w->saveState();
-}
-
-
-int main(int argc, char *argv[])
-{
- WpaGuiApp app(argc, argv);
- WpaGui w(&app);
- int ret;
-
-#ifdef CONFIG_NATIVE_WINDOWS
- WSADATA wsaData;
- if (WSAStartup(MAKEWORD(2, 0), &wsaData)) {
- /* printf("Could not find a usable WinSock.dll\n"); */
- return -1;
- }
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- app.w = &w;
-
- ret = app.exec();
-
-#ifdef CONFIG_NATIVE_WINDOWS
- WSACleanup();
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- return ret;
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp b/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp
deleted file mode 100644
index dae9edd38d39..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- * wpa_gui - NetworkConfig class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include <cstdio>
-#include <QMessageBox>
-
-#include "networkconfig.h"
-#include "wpagui.h"
-
-enum {
- AUTH_NONE = 0,
- AUTH_IEEE8021X = 1,
- AUTH_WPA_PSK = 2,
- AUTH_WPA_EAP = 3,
- AUTH_WPA2_PSK = 4,
- AUTH_WPA2_EAP = 5
-};
-
-#define WPA_GUI_KEY_DATA "[key is configured]"
-
-
-NetworkConfig::NetworkConfig(QWidget *parent, const char *, bool, Qt::WFlags)
- : QDialog(parent)
-{
- setupUi(this);
-
- connect(authSelect, SIGNAL(activated(int)), this,
- SLOT(authChanged(int)));
- connect(cancelButton, SIGNAL(clicked()), this, SLOT(close()));
- connect(addButton, SIGNAL(clicked()), this, SLOT(addNetwork()));
- connect(encrSelect, SIGNAL(activated(const QString &)), this,
- SLOT(encrChanged(const QString &)));
- connect(removeButton, SIGNAL(clicked()), this, SLOT(removeNetwork()));
- connect(eapSelect, SIGNAL(activated(int)), this,
- SLOT(eapChanged(int)));
- connect(useWpsButton, SIGNAL(clicked()), this, SLOT(useWps()));
-
- wpagui = NULL;
- new_network = false;
-}
-
-
-NetworkConfig::~NetworkConfig()
-{
-}
-
-
-void NetworkConfig::languageChange()
-{
- retranslateUi(this);
-}
-
-
-void NetworkConfig::paramsFromScanResults(QTreeWidgetItem *sel)
-{
- new_network = true;
-
- /* SSID BSSID frequency signal flags */
- setWindowTitle(sel->text(0));
- ssidEdit->setText(sel->text(0));
-
- QString flags = sel->text(4);
- int auth, encr = 0;
- if (flags.indexOf("[WPA2-EAP") >= 0)
- auth = AUTH_WPA2_EAP;
- else if (flags.indexOf("[WPA-EAP") >= 0)
- auth = AUTH_WPA_EAP;
- else if (flags.indexOf("[WPA2-PSK") >= 0)
- auth = AUTH_WPA2_PSK;
- else if (flags.indexOf("[WPA-PSK") >= 0)
- auth = AUTH_WPA_PSK;
- else
- auth = AUTH_NONE;
-
- if (flags.indexOf("-CCMP") >= 0)
- encr = 1;
- else if (flags.indexOf("-TKIP") >= 0)
- encr = 0;
- else if (flags.indexOf("WEP") >= 0)
- encr = 1;
- else
- encr = 0;
-
- authSelect->setCurrentIndex(auth);
- authChanged(auth);
- encrSelect->setCurrentIndex(encr);
-
- wepEnabled(auth == AUTH_NONE && encr == 1);
-
- getEapCapa();
-
- if (flags.indexOf("[WPS") >= 0)
- useWpsButton->setEnabled(true);
- bssid = sel->text(1);
-}
-
-
-void NetworkConfig::authChanged(int sel)
-{
- pskEdit->setEnabled(sel == AUTH_WPA_PSK || sel == AUTH_WPA2_PSK);
- bool eap = sel == AUTH_IEEE8021X || sel == AUTH_WPA_EAP ||
- sel == AUTH_WPA2_EAP;
- eapSelect->setEnabled(eap);
- identityEdit->setEnabled(eap);
- passwordEdit->setEnabled(eap);
- cacertEdit->setEnabled(eap);
- phase2Select->setEnabled(eap);
- if (eap)
- eapChanged(eapSelect->currentIndex());
-
- while (encrSelect->count())
- encrSelect->removeItem(0);
-
- if (sel == AUTH_NONE || sel == AUTH_IEEE8021X) {
- encrSelect->addItem("None");
- encrSelect->addItem("WEP");
- encrSelect->setCurrentIndex(sel == AUTH_NONE ? 0 : 1);
- } else {
- encrSelect->addItem("TKIP");
- encrSelect->addItem("CCMP");
- encrSelect->setCurrentIndex((sel == AUTH_WPA2_PSK ||
- sel == AUTH_WPA2_EAP) ? 1 : 0);
- }
-
- wepEnabled(sel == AUTH_IEEE8021X);
-}
-
-
-void NetworkConfig::eapChanged(int sel)
-{
- QString prev_val = phase2Select->currentText();
- while (phase2Select->count())
- phase2Select->removeItem(0);
-
- QStringList inner;
- inner << "PEAP" << "TTLS" << "FAST";
- if (!inner.contains(eapSelect->itemText(sel)))
- return;
-
- phase2Select->addItem("[ any ]");
-
- /* Add special cases based on outer method */
- if (eapSelect->currentText().compare("TTLS") == 0) {
- phase2Select->addItem("PAP");
- phase2Select->addItem("CHAP");
- phase2Select->addItem("MSCHAP");
- phase2Select->addItem("MSCHAPv2");
- } else if (eapSelect->currentText().compare("FAST") == 0)
- phase2Select->addItem("GTC(auth) + MSCHAPv2(prov)");
-
- /* Add all enabled EAP methods that can be used in the tunnel */
- int i;
- QStringList allowed;
- allowed << "MSCHAPV2" << "MD5" << "GTC" << "TLS" << "OTP" << "SIM"
- << "AKA";
- for (i = 0; i < eapSelect->count(); i++) {
- if (allowed.contains(eapSelect->itemText(i))) {
- phase2Select->addItem("EAP-" + eapSelect->itemText(i));
- }
- }
-
- for (i = 0; i < phase2Select->count(); i++) {
- if (phase2Select->itemText(i).compare(prev_val) == 0) {
- phase2Select->setCurrentIndex(i);
- break;
- }
- }
-}
-
-
-void NetworkConfig::addNetwork()
-{
- char reply[10], cmd[256];
- size_t reply_len;
- int id;
- int psklen = pskEdit->text().length();
- int auth = authSelect->currentIndex();
-
- if (auth == AUTH_WPA_PSK || auth == AUTH_WPA2_PSK) {
- if (psklen < 8 || psklen > 64) {
- QMessageBox::warning(this, "WPA Pre-Shared Key Error",
- "WPA-PSK requires a passphrase "
- "of 8 to 63 characters\n"
- "or 64 hex digit PSK");
- pskEdit->setFocus();
- return;
- }
- }
-
- if (idstrEdit->isEnabled() && !idstrEdit->text().isEmpty()) {
- QRegExp rx("^(\\w|-)+$");
- if (rx.indexIn(idstrEdit->text()) < 0) {
- QMessageBox::warning(this, "Network ID Error",
- "Network ID String contains "
- "non-word characters.\n"
- "It must be a simple string, "
- "without spaces, containing\n"
- "only characters in this range: "
- "[A-Za-z0-9_-]\n");
- idstrEdit->setFocus();
- return;
- }
- }
-
- if (wpagui == NULL)
- return;
-
- memset(reply, 0, sizeof(reply));
- reply_len = sizeof(reply) - 1;
-
- if (new_network) {
- wpagui->ctrlRequest("ADD_NETWORK", reply, &reply_len);
- if (reply[0] == 'F') {
- QMessageBox::warning(this, "wpa_gui", "Failed to add "
- "network to wpa_supplicant\n"
- "configuration.");
- return;
- }
- id = atoi(reply);
- } else
- id = edit_network_id;
-
- setNetworkParam(id, "ssid", ssidEdit->text().toAscii().constData(),
- true);
-
- const char *key_mgmt = NULL, *proto = NULL, *pairwise = NULL;
- switch (auth) {
- case AUTH_NONE:
- key_mgmt = "NONE";
- break;
- case AUTH_IEEE8021X:
- key_mgmt = "IEEE8021X";
- break;
- case AUTH_WPA_PSK:
- key_mgmt = "WPA-PSK";
- proto = "WPA";
- break;
- case AUTH_WPA_EAP:
- key_mgmt = "WPA-EAP";
- proto = "WPA";
- break;
- case AUTH_WPA2_PSK:
- key_mgmt = "WPA-PSK";
- proto = "WPA2";
- break;
- case AUTH_WPA2_EAP:
- key_mgmt = "WPA-EAP";
- proto = "WPA2";
- break;
- }
-
- if (auth == AUTH_WPA_PSK || auth == AUTH_WPA_EAP ||
- auth == AUTH_WPA2_PSK || auth == AUTH_WPA2_EAP) {
- int encr = encrSelect->currentIndex();
- if (encr == 0)
- pairwise = "TKIP";
- else
- pairwise = "CCMP";
- }
-
- if (proto)
- setNetworkParam(id, "proto", proto, false);
- if (key_mgmt)
- setNetworkParam(id, "key_mgmt", key_mgmt, false);
- if (pairwise) {
- setNetworkParam(id, "pairwise", pairwise, false);
- setNetworkParam(id, "group", "TKIP CCMP WEP104 WEP40", false);
- }
- if (pskEdit->isEnabled() &&
- strcmp(pskEdit->text().toAscii().constData(),
- WPA_GUI_KEY_DATA) != 0)
- setNetworkParam(id, "psk",
- pskEdit->text().toAscii().constData(),
- psklen != 64);
- if (eapSelect->isEnabled()) {
- const char *eap =
- eapSelect->currentText().toAscii().constData();
- setNetworkParam(id, "eap", eap, false);
- if (strcmp(eap, "SIM") == 0 || strcmp(eap, "AKA") == 0)
- setNetworkParam(id, "pcsc", "", true);
- else
- setNetworkParam(id, "pcsc", "NULL", false);
- }
- if (phase2Select->isEnabled()) {
- QString eap = eapSelect->currentText();
- QString inner = phase2Select->currentText();
- char phase2[32];
- phase2[0] = '\0';
- if (eap.compare("PEAP") == 0) {
- if (inner.startsWith("EAP-"))
- snprintf(phase2, sizeof(phase2), "auth=%s",
- inner.right(inner.size() - 4).
- toAscii().constData());
- } else if (eap.compare("TTLS") == 0) {
- if (inner.startsWith("EAP-"))
- snprintf(phase2, sizeof(phase2), "autheap=%s",
- inner.right(inner.size() - 4).
- toAscii().constData());
- else
- snprintf(phase2, sizeof(phase2), "auth=%s",
- inner.toAscii().constData());
- } else if (eap.compare("FAST") == 0) {
- const char *provisioning = NULL;
- if (inner.startsWith("EAP-")) {
- snprintf(phase2, sizeof(phase2), "auth=%s",
- inner.right(inner.size() - 4).
- toAscii().constData());
- provisioning = "fast_provisioning=2";
- } else if (inner.compare("GTC(auth) + MSCHAPv2(prov)")
- == 0) {
- snprintf(phase2, sizeof(phase2),
- "auth=GTC auth=MSCHAPV2");
- provisioning = "fast_provisioning=1";
- } else
- provisioning = "fast_provisioning=3";
- if (provisioning) {
- char blob[32];
- setNetworkParam(id, "phase1", provisioning,
- true);
- snprintf(blob, sizeof(blob),
- "blob://fast-pac-%d", id);
- setNetworkParam(id, "pac_file", blob, true);
- }
- }
- if (phase2[0])
- setNetworkParam(id, "phase2", phase2, true);
- else
- setNetworkParam(id, "phase2", "NULL", false);
- } else
- setNetworkParam(id, "phase2", "NULL", false);
- if (identityEdit->isEnabled() && identityEdit->text().length() > 0)
- setNetworkParam(id, "identity",
- identityEdit->text().toAscii().constData(),
- true);
- else
- setNetworkParam(id, "identity", "NULL", false);
- if (passwordEdit->isEnabled() && passwordEdit->text().length() > 0 &&
- strcmp(passwordEdit->text().toAscii().constData(),
- WPA_GUI_KEY_DATA) != 0)
- setNetworkParam(id, "password",
- passwordEdit->text().toAscii().constData(),
- true);
- else if (passwordEdit->text().length() == 0)
- setNetworkParam(id, "password", "NULL", false);
- if (cacertEdit->isEnabled() && cacertEdit->text().length() > 0)
- setNetworkParam(id, "ca_cert",
- cacertEdit->text().toAscii().constData(),
- true);
- else
- setNetworkParam(id, "ca_cert", "NULL", false);
- writeWepKey(id, wep0Edit, 0);
- writeWepKey(id, wep1Edit, 1);
- writeWepKey(id, wep2Edit, 2);
- writeWepKey(id, wep3Edit, 3);
-
- if (wep0Radio->isEnabled() && wep0Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "0", false);
- else if (wep1Radio->isEnabled() && wep1Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "1", false);
- else if (wep2Radio->isEnabled() && wep2Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "2", false);
- else if (wep3Radio->isEnabled() && wep3Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "3", false);
-
- if (idstrEdit->isEnabled() && idstrEdit->text().length() > 0)
- setNetworkParam(id, "id_str",
- idstrEdit->text().toAscii().constData(),
- true);
- else
- setNetworkParam(id, "id_str", "NULL", false);
-
- if (prioritySpinBox->isEnabled()) {
- QString prio;
- prio = prio.setNum(prioritySpinBox->value());
- setNetworkParam(id, "priority", prio.toAscii().constData(),
- false);
- }
-
- snprintf(cmd, sizeof(cmd), "ENABLE_NETWORK %d", id);
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (strncmp(reply, "OK", 2) != 0) {
- QMessageBox::warning(this, "wpa_gui", "Failed to enable "
- "network in wpa_supplicant\n"
- "configuration.");
- /* Network was added, so continue anyway */
- }
- wpagui->triggerUpdate();
- wpagui->ctrlRequest("SAVE_CONFIG", reply, &reply_len);
-
- close();
-}
-
-
-void NetworkConfig::setWpaGui(WpaGui *_wpagui)
-{
- wpagui = _wpagui;
-}
-
-
-int NetworkConfig::setNetworkParam(int id, const char *field,
- const char *value, bool quote)
-{
- char reply[10], cmd[256];
- size_t reply_len;
- snprintf(cmd, sizeof(cmd), "SET_NETWORK %d %s %s%s%s",
- id, field, quote ? "\"" : "", value, quote ? "\"" : "");
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- return strncmp(reply, "OK", 2) == 0 ? 0 : -1;
-}
-
-
-void NetworkConfig::encrChanged(const QString &sel)
-{
- wepEnabled(sel.indexOf("WEP") == 0);
-}
-
-
-void NetworkConfig::wepEnabled(bool enabled)
-{
- wep0Edit->setEnabled(enabled);
- wep1Edit->setEnabled(enabled);
- wep2Edit->setEnabled(enabled);
- wep3Edit->setEnabled(enabled);
- wep0Radio->setEnabled(enabled);
- wep1Radio->setEnabled(enabled);
- wep2Radio->setEnabled(enabled);
- wep3Radio->setEnabled(enabled);
-}
-
-
-void NetworkConfig::writeWepKey(int network_id, QLineEdit *edit, int id)
-{
- char buf[10];
- bool hex;
- const char *txt, *pos;
- size_t len;
-
- if (!edit->isEnabled() || edit->text().isEmpty())
- return;
-
- /*
- * Assume hex key if only hex characters are present and length matches
- * with 40, 104, or 128-bit key
- */
- txt = edit->text().toAscii().constData();
- if (strcmp(txt, WPA_GUI_KEY_DATA) == 0)
- return;
- len = strlen(txt);
- if (len == 0)
- return;
- pos = txt;
- hex = true;
- while (*pos) {
- if (!((*pos >= '0' && *pos <= '9') ||
- (*pos >= 'a' && *pos <= 'f') ||
- (*pos >= 'A' && *pos <= 'F'))) {
- hex = false;
- break;
- }
- pos++;
- }
- if (hex && len != 10 && len != 26 && len != 32)
- hex = false;
- snprintf(buf, sizeof(buf), "wep_key%d", id);
- setNetworkParam(network_id, buf, txt, !hex);
-}
-
-
-static int key_value_isset(const char *reply, size_t reply_len)
-{
- return reply_len > 0 && (reply_len < 4 || memcmp(reply, "FAIL", 4) != 0);
-}
-
-
-void NetworkConfig::paramsFromConfig(int network_id)
-{
- int i, res;
-
- edit_network_id = network_id;
- getEapCapa();
-
- char reply[1024], cmd[256], *pos;
- size_t reply_len;
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d ssid", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- ssidEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d proto", network_id);
- reply_len = sizeof(reply) - 1;
- int wpa = 0;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "RSN") || strstr(reply, "WPA2"))
- wpa = 2;
- else if (strstr(reply, "WPA"))
- wpa = 1;
- }
-
- int auth = AUTH_NONE, encr = 0;
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d key_mgmt", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "WPA-EAP"))
- auth = wpa & 2 ? AUTH_WPA2_EAP : AUTH_WPA_EAP;
- else if (strstr(reply, "WPA-PSK"))
- auth = wpa & 2 ? AUTH_WPA2_PSK : AUTH_WPA_PSK;
- else if (strstr(reply, "IEEE8021X")) {
- auth = AUTH_IEEE8021X;
- encr = 1;
- }
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d pairwise", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "CCMP") && auth != AUTH_NONE)
- encr = 1;
- else if (strstr(reply, "TKIP"))
- encr = 0;
- else if (strstr(reply, "WEP"))
- encr = 1;
- else
- encr = 0;
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d psk", network_id);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- pskEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- pskEdit->setText(WPA_GUI_KEY_DATA);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d identity", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- identityEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d password", network_id);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- passwordEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- passwordEdit->setText(WPA_GUI_KEY_DATA);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d ca_cert", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- cacertEdit->setText(reply + 1);
- }
-
- enum { NO_INNER, PEAP_INNER, TTLS_INNER, FAST_INNER } eap = NO_INNER;
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d eap", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 1) {
- reply[reply_len] = '\0';
- for (i = 0; i < eapSelect->count(); i++) {
- if (eapSelect->itemText(i).compare(reply) == 0) {
- eapSelect->setCurrentIndex(i);
- if (strcmp(reply, "PEAP") == 0)
- eap = PEAP_INNER;
- else if (strcmp(reply, "TTLS") == 0)
- eap = TTLS_INNER;
- else if (strcmp(reply, "FAST") == 0)
- eap = FAST_INNER;
- break;
- }
- }
- }
-
- if (eap != NO_INNER) {
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d phase2",
- network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 1) {
- reply[reply_len] = '\0';
- eapChanged(eapSelect->currentIndex());
- } else
- eap = NO_INNER;
- }
-
- char *val;
- val = reply + 1;
- while (*(val + 1))
- val++;
- if (*val == '"')
- *val = '\0';
-
- switch (eap) {
- case PEAP_INNER:
- if (strncmp(reply, "\"auth=", 6))
- break;
- val = reply + 2;
- memcpy(val, "EAP-", 4);
- break;
- case TTLS_INNER:
- if (strncmp(reply, "\"autheap=", 9) == 0) {
- val = reply + 5;
- memcpy(val, "EAP-", 4);
- } else if (strncmp(reply, "\"auth=", 6) == 0)
- val = reply + 6;
- break;
- case FAST_INNER:
- if (strncmp(reply, "\"auth=", 6))
- break;
- if (strcmp(reply + 6, "GTC auth=MSCHAPV2") == 0) {
- val = (char *) "GTC(auth) + MSCHAPv2(prov)";
- break;
- }
- val = reply + 2;
- memcpy(val, "EAP-", 4);
- break;
- case NO_INNER:
- break;
- }
-
- for (i = 0; i < phase2Select->count(); i++) {
- if (phase2Select->itemText(i).compare(val) == 0) {
- phase2Select->setCurrentIndex(i);
- break;
- }
- }
-
- for (i = 0; i < 4; i++) {
- QLineEdit *wepEdit;
- switch (i) {
- default:
- case 0:
- wepEdit = wep0Edit;
- break;
- case 1:
- wepEdit = wep1Edit;
- break;
- case 2:
- wepEdit = wep2Edit;
- break;
- case 3:
- wepEdit = wep3Edit;
- break;
- }
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d wep_key%d",
- network_id, i);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- encr = 1;
-
- wepEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- encr = 1;
- wepEdit->setText(WPA_GUI_KEY_DATA);
- }
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d wep_tx_keyidx", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 1)
- {
- reply[reply_len] = '\0';
- switch (atoi(reply)) {
- case 0:
- wep0Radio->setChecked(true);
- break;
- case 1:
- wep1Radio->setChecked(true);
- break;
- case 2:
- wep2Radio->setChecked(true);
- break;
- case 3:
- wep3Radio->setChecked(true);
- break;
- }
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d id_str", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 &&
- reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- idstrEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d priority", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 1)
- {
- reply[reply_len] = '\0';
- prioritySpinBox->setValue(atoi(reply));
- }
-
- authSelect->setCurrentIndex(auth);
- authChanged(auth);
- encrSelect->setCurrentIndex(encr);
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- wepEnabled(encr == 1);
-
- removeButton->setEnabled(true);
- addButton->setText("Save");
-}
-
-
-void NetworkConfig::removeNetwork()
-{
- char reply[10], cmd[256];
- size_t reply_len;
-
- if (QMessageBox::information(this, "wpa_gui",
- "This will permanently remove the "
- "network\n"
- "from the configuration. Do you really "
- "want\n"
- "to remove this network?", "Yes", "No")
- != 0)
- return;
-
- snprintf(cmd, sizeof(cmd), "REMOVE_NETWORK %d", edit_network_id);
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (strncmp(reply, "OK", 2) != 0) {
- QMessageBox::warning(this, "wpa_gui",
- "Failed to remove network from "
- "wpa_supplicant\n"
- "configuration.");
- } else {
- wpagui->triggerUpdate();
- wpagui->ctrlRequest("SAVE_CONFIG", reply, &reply_len);
- }
-
- close();
-}
-
-
-void NetworkConfig::newNetwork()
-{
- new_network = true;
- getEapCapa();
-}
-
-
-void NetworkConfig::getEapCapa()
-{
- char reply[256];
- size_t reply_len;
-
- if (wpagui == NULL)
- return;
-
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest("GET_CAPABILITY eap", reply, &reply_len) < 0)
- return;
- reply[reply_len] = '\0';
-
- QString res(reply);
- QStringList types = res.split(QChar(' '));
- eapSelect->insertItems(-1, types);
-}
-
-
-void NetworkConfig::useWps()
-{
- if (wpagui == NULL)
- return;
- wpagui->setBssFromScan(bssid);
- wpagui->wpsDialog();
- close();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/networkconfig.h b/wpa_supplicant/wpa_gui-qt4/networkconfig.h
deleted file mode 100644
index 0ceeb417f028..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/networkconfig.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * wpa_gui - NetworkConfig class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef NETWORKCONFIG_H
-#define NETWORKCONFIG_H
-
-#include <QObject>
-#include "ui_networkconfig.h"
-
-class WpaGui;
-
-class NetworkConfig : public QDialog, public Ui::NetworkConfig
-{
- Q_OBJECT
-
-public:
- NetworkConfig(QWidget *parent = 0, const char *name = 0,
- bool modal = false, Qt::WFlags fl = 0);
- ~NetworkConfig();
-
- virtual void paramsFromScanResults(QTreeWidgetItem *sel);
- virtual void setWpaGui(WpaGui *_wpagui);
- virtual int setNetworkParam(int id, const char *field,
- const char *value, bool quote);
- virtual void paramsFromConfig(int network_id);
- virtual void newNetwork();
-
-public slots:
- virtual void authChanged(int sel);
- virtual void addNetwork();
- virtual void encrChanged(const QString &sel);
- virtual void writeWepKey(int network_id, QLineEdit *edit, int id);
- virtual void removeNetwork();
- virtual void eapChanged(int sel);
- virtual void useWps();
-
-protected slots:
- virtual void languageChange();
-
-private:
- WpaGui *wpagui;
- int edit_network_id;
- bool new_network;
- QString bssid;
-
- virtual void wepEnabled(bool enabled);
- virtual void getEapCapa();
-};
-
-#endif /* NETWORKCONFIG_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/networkconfig.ui b/wpa_supplicant/wpa_gui-qt4/networkconfig.ui
deleted file mode 100644
index ede462f67d91..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/networkconfig.ui
+++ /dev/null
@@ -1,425 +0,0 @@
-<ui version="4.0" >
- <class>NetworkConfig</class>
- <widget class="QDialog" name="NetworkConfig" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>410</width>
- <height>534</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>NetworkConfig</string>
- </property>
- <layout class="QGridLayout" >
- <item row="1" column="3" >
- <widget class="QPushButton" name="cancelButton" >
- <property name="text" >
- <string>Cancel</string>
- </property>
- </widget>
- </item>
- <item row="0" column="0" colspan="4" >
- <widget class="QFrame" name="frame9" >
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="ssidLabel" >
- <property name="text" >
- <string>SSID</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLineEdit" name="ssidEdit" >
- <property name="toolTip" >
- <string>Network name (Service Set IDentifier)</string>
- </property>
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="authLabel" >
- <property name="text" >
- <string>Authentication</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QComboBox" name="authSelect" >
- <item>
- <property name="text" >
- <string>Plaintext or static WEP</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>IEEE 802.1X</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>WPA-Personal (PSK)</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>WPA-Enterprise (EAP)</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>WPA2-Personal (PSK)</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>WPA2-Enterprise (EAP)</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="encrLabel" >
- <property name="text" >
- <string>Encryption</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QComboBox" name="encrSelect" >
- <item>
- <property name="text" >
- <string>None</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>WEP</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>TKIP</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>CCMP</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="pskLabel" >
- <property name="text" >
- <string>PSK</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLineEdit" name="pskEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="toolTip" >
- <string>WPA/WPA2 pre-shared key or passphrase</string>
- </property>
- <property name="whatsThis" >
- <string/>
- </property>
- <property name="echoMode" >
- <enum>QLineEdit::Password</enum>
- </property>
- </widget>
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="eapLabel" >
- <property name="text" >
- <string>EAP method</string>
- </property>
- </widget>
- </item>
- <item row="4" column="1" >
- <widget class="QComboBox" name="eapSelect" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="5" column="0" >
- <widget class="QLabel" name="identityLabel" >
- <property name="text" >
- <string>Identity</string>
- </property>
- </widget>
- </item>
- <item row="5" column="1" >
- <widget class="QLineEdit" name="identityEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="toolTip" >
- <string>Username/Identity for EAP methods</string>
- </property>
- </widget>
- </item>
- <item row="6" column="0" >
- <widget class="QLabel" name="passwordLabel" >
- <property name="text" >
- <string>Password</string>
- </property>
- </widget>
- </item>
- <item row="6" column="1" >
- <widget class="QLineEdit" name="passwordEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="toolTip" >
- <string>Password for EAP methods</string>
- </property>
- <property name="echoMode" >
- <enum>QLineEdit::Password</enum>
- </property>
- </widget>
- </item>
- <item row="7" column="0" >
- <widget class="QLabel" name="cacertLabel" >
- <property name="text" >
- <string>CA certificate</string>
- </property>
- </widget>
- </item>
- <item row="7" column="1" >
- <widget class="QLineEdit" name="cacertEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="8" column="0" colspan="2" >
- <widget class="QGroupBox" name="wepBox" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="title" >
- <string>WEP keys</string>
- </property>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QRadioButton" name="wep0Radio" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>key 0</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QRadioButton" name="wep1Radio" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>key 1</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QRadioButton" name="wep3Radio" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>key 3</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QRadioButton" name="wep2Radio" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>key 2</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLineEdit" name="wep0Edit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QLineEdit" name="wep1Edit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QLineEdit" name="wep2Edit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLineEdit" name="wep3Edit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="9" column="0" colspan="2" >
- <widget class="QGroupBox" name="optionalSettingsBox" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="title" >
- <string>Optional Settings</string>
- </property>
- <layout class="QGridLayout" >
- <item row="0" column="1" >
- <widget class="QLineEdit" name="idstrEdit" >
- <property name="toolTip" >
- <string>Network Identification String</string>
- </property>
- </widget>
- </item>
- <item row="0" column="3" >
- <widget class="QSpinBox" name="prioritySpinBox" >
- <property name="toolTip" >
- <string>Network Priority</string>
- </property>
- <property name="maximum" >
- <number>10000</number>
- </property>
- <property name="singleStep" >
- <number>10</number>
- </property>
- </widget>
- </item>
- <item row="0" column="0" >
- <widget class="QLabel" name="idstrLabel" >
- <property name="text" >
- <string>IDString</string>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <widget class="QLabel" name="priorityLabel" >
- <property name="text" >
- <string>Priority</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="phase2Label" >
- <property name="text" >
- <string>Inner auth</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QComboBox" name="phase2Select" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="1" column="2" >
- <widget class="QPushButton" name="addButton" >
- <property name="text" >
- <string>Add</string>
- </property>
- </widget>
- </item>
- <item row="1" column="3" >
- <widget class="QPushButton" name="removeButton" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>Remove</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="useWpsButton" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>WPS</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <tabstops>
- <tabstop>ssidEdit</tabstop>
- <tabstop>authSelect</tabstop>
- <tabstop>encrSelect</tabstop>
- <tabstop>pskEdit</tabstop>
- <tabstop>eapSelect</tabstop>
- <tabstop>identityEdit</tabstop>
- <tabstop>passwordEdit</tabstop>
- <tabstop>cacertEdit</tabstop>
- <tabstop>wep0Radio</tabstop>
- <tabstop>wep0Edit</tabstop>
- <tabstop>wep1Radio</tabstop>
- <tabstop>wep1Edit</tabstop>
- <tabstop>wep2Radio</tabstop>
- <tabstop>wep2Edit</tabstop>
- <tabstop>wep3Radio</tabstop>
- <tabstop>wep3Edit</tabstop>
- <tabstop>idstrEdit</tabstop>
- <tabstop>prioritySpinBox</tabstop>
- <tabstop>phase2Select</tabstop>
- <tabstop>addButton</tabstop>
- <tabstop>removeButton</tabstop>
- <tabstop>cancelButton</tabstop>
- </tabstops>
- <includes>
- <include location="global" >qtreewidget.h</include>
- </includes>
- <resources/>
- <connections/>
-</ui>
diff --git a/wpa_supplicant/wpa_gui-qt4/scanresults.cpp b/wpa_supplicant/wpa_gui-qt4/scanresults.cpp
deleted file mode 100644
index 459aa8c69637..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/scanresults.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * wpa_gui - ScanResults class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include <cstdio>
-
-#include "scanresults.h"
-#include "wpagui.h"
-#include "networkconfig.h"
-
-
-ScanResults::ScanResults(QWidget *parent, const char *, bool, Qt::WFlags)
- : QDialog(parent)
-{
- setupUi(this);
-
- connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
- connect(scanButton, SIGNAL(clicked()), this, SLOT(scanRequest()));
- connect(scanResultsWidget,
- SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this,
- SLOT(bssSelected(QTreeWidgetItem *)));
-
- wpagui = NULL;
- scanResultsWidget->setItemsExpandable(FALSE);
- scanResultsWidget->setRootIsDecorated(FALSE);
-}
-
-
-ScanResults::~ScanResults()
-{
-}
-
-
-void ScanResults::languageChange()
-{
- retranslateUi(this);
-}
-
-
-void ScanResults::setWpaGui(WpaGui *_wpagui)
-{
- wpagui = _wpagui;
- updateResults();
-}
-
-
-void ScanResults::updateResults()
-{
- char reply[2048];
- size_t reply_len;
- int index;
- char cmd[20];
-
- scanResultsWidget->clear();
-
- index = 0;
- while (wpagui) {
- snprintf(cmd, sizeof(cmd), "BSS %d", index++);
- if (index > 1000)
- break;
-
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) < 0)
- break;
- reply[reply_len] = '\0';
-
- QString bss(reply);
- if (bss.isEmpty() || bss.startsWith("FAIL"))
- break;
-
- QString ssid, bssid, freq, signal, flags;
-
- QStringList lines = bss.split(QRegExp("\\n"));
- for (QStringList::Iterator it = lines.begin();
- it != lines.end(); it++) {
- int pos = (*it).indexOf('=') + 1;
- if (pos < 1)
- continue;
-
- if ((*it).startsWith("bssid="))
- bssid = (*it).mid(pos);
- else if ((*it).startsWith("freq="))
- freq = (*it).mid(pos);
- else if ((*it).startsWith("qual="))
- signal = (*it).mid(pos);
- else if ((*it).startsWith("flags="))
- flags = (*it).mid(pos);
- else if ((*it).startsWith("ssid="))
- ssid = (*it).mid(pos);
- }
-
- QTreeWidgetItem *item = new QTreeWidgetItem(scanResultsWidget);
- if (item) {
- item->setText(0, ssid);
- item->setText(1, bssid);
- item->setText(2, freq);
- item->setText(3, signal);
- item->setText(4, flags);
- }
-
- if (bssid.isEmpty())
- break;
- }
-}
-
-
-void ScanResults::scanRequest()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (wpagui == NULL)
- return;
-
- wpagui->ctrlRequest("SCAN", reply, &reply_len);
-}
-
-
-void ScanResults::getResults()
-{
- updateResults();
-}
-
-
-void ScanResults::bssSelected(QTreeWidgetItem *sel)
-{
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(wpagui);
- nc->paramsFromScanResults(sel);
- nc->show();
- nc->exec();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/scanresults.h b/wpa_supplicant/wpa_gui-qt4/scanresults.h
deleted file mode 100644
index 2c4a1b0ace11..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/scanresults.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * wpa_gui - ScanResults class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef SCANRESULTS_H
-#define SCANRESULTS_H
-
-#include <QObject>
-#include "ui_scanresults.h"
-
-class WpaGui;
-
-class ScanResults : public QDialog, public Ui::ScanResults
-{
- Q_OBJECT
-
-public:
- ScanResults(QWidget *parent = 0, const char *name = 0,
- bool modal = false, Qt::WFlags fl = 0);
- ~ScanResults();
-
-public slots:
- virtual void setWpaGui(WpaGui *_wpagui);
- virtual void updateResults();
- virtual void scanRequest();
- virtual void getResults();
- virtual void bssSelected(QTreeWidgetItem *sel);
-
-protected slots:
- virtual void languageChange();
-
-private:
- WpaGui *wpagui;
-};
-
-#endif /* SCANRESULTS_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/scanresults.ui b/wpa_supplicant/wpa_gui-qt4/scanresults.ui
deleted file mode 100644
index 81e405efc319..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/scanresults.ui
+++ /dev/null
@@ -1,94 +0,0 @@
-<ui version="4.0" >
- <class>ScanResults</class>
- <widget class="QDialog" name="ScanResults" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>452</width>
- <height>244</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Scan results</string>
- </property>
- <layout class="QVBoxLayout" >
- <item>
- <widget class="QTreeWidget" name="scanResultsWidget" >
- <property name="editTriggers" >
- <set>QAbstractItemView::NoEditTriggers</set>
- </property>
- <property name="uniformRowHeights" >
- <bool>true</bool>
- </property>
- <property name="sortingEnabled" >
- <bool>true</bool>
- </property>
- <property name="columnCount" >
- <number>5</number>
- </property>
- <column>
- <property name="text" >
- <string>SSID</string>
- </property>
- </column>
- <column>
- <property name="text" >
- <string>BSSID</string>
- </property>
- </column>
- <column>
- <property name="text" >
- <string>frequency</string>
- </property>
- </column>
- <column>
- <property name="text" >
- <string>signal</string>
- </property>
- </column>
- <column>
- <property name="text" >
- <string>flags</string>
- </property>
- </column>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="scanButton" >
- <property name="text" >
- <string>Scan</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="closeButton" >
- <property name="text" >
- <string>Close</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <resources/>
- <connections/>
-</ui>
diff --git a/wpa_supplicant/wpa_gui-qt4/userdatarequest.cpp b/wpa_supplicant/wpa_gui-qt4/userdatarequest.cpp
deleted file mode 100644
index 42fbdbc7b4e4..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/userdatarequest.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * wpa_gui - UserDataRequest class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#include "userdatarequest.h"
-#include "wpagui.h"
-#include "wpa_ctrl.h"
-
-
-UserDataRequest::UserDataRequest(QWidget *parent, const char *, bool,
- Qt::WFlags)
- : QDialog(parent)
-{
- setupUi(this);
-
- connect(buttonOk, SIGNAL(clicked()), this, SLOT(sendReply()));
- connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
- connect(queryEdit, SIGNAL(returnPressed()), this, SLOT(sendReply()));
-}
-
-
-UserDataRequest::~UserDataRequest()
-{
-}
-
-
-void UserDataRequest::languageChange()
-{
- retranslateUi(this);
-}
-
-
-int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
-{
- char *tmp, *pos, *pos2;
- wpagui = _wpagui;
- tmp = strdup(reqMsg);
- if (tmp == NULL)
- return -1;
- pos = strchr(tmp, '-');
- if (pos == NULL) {
- free(tmp);
- return -1;
- }
- *pos++ = '\0';
- field = tmp;
- pos2 = strchr(pos, ':');
- if (pos2 == NULL) {
- free(tmp);
- return -1;
- }
- *pos2++ = '\0';
-
- networkid = atoi(pos);
- queryInfo->setText(pos2);
- if (strcmp(tmp, "PASSWORD") == 0) {
- queryField->setText("Password: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else if (strcmp(tmp, "NEW_PASSWORD") == 0) {
- queryField->setText("New password: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else if (strcmp(tmp, "IDENTITY") == 0)
- queryField->setText("Identity: ");
- else if (strcmp(tmp, "PASSPHRASE") == 0) {
- queryField->setText("Private key passphrase: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else
- queryField->setText(field + ":");
- free(tmp);
-
- return 0;
-}
-
-
-void UserDataRequest::sendReply()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (wpagui == NULL) {
- reject();
- return;
- }
-
- QString cmd = QString(WPA_CTRL_RSP) + field + '-' +
- QString::number(networkid) + ':' +
- queryEdit->text();
- wpagui->ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
- accept();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/userdatarequest.h b/wpa_supplicant/wpa_gui-qt4/userdatarequest.h
deleted file mode 100644
index 2b6e8371bc65..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/userdatarequest.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * wpa_gui - UserDataRequest class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef USERDATAREQUEST_H
-#define USERDATAREQUEST_H
-
-#include <QObject>
-#include "ui_userdatarequest.h"
-
-class WpaGui;
-
-class UserDataRequest : public QDialog, public Ui::UserDataRequest
-{
- Q_OBJECT
-
-public:
- UserDataRequest(QWidget *parent = 0, const char *name = 0,
- bool modal = false, Qt::WFlags fl = 0);
- ~UserDataRequest();
-
- int setParams(WpaGui *_wpagui, const char *reqMsg);
-
-public slots:
- virtual void sendReply();
-
-protected slots:
- virtual void languageChange();
-
-private:
- WpaGui *wpagui;
- int networkid;
- QString field;
-};
-
-#endif /* USERDATAREQUEST_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui b/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui
deleted file mode 100644
index 1de2a26da1cd..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui
+++ /dev/null
@@ -1,109 +0,0 @@
-<ui version="4.0" stdsetdef="1" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
- <class>UserDataRequest</class>
- <widget class="QDialog" name="UserDataRequest" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>216</width>
- <height>103</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Authentication credentials required</string>
- </property>
- <property name="sizeGripEnabled" >
- <bool>true</bool>
- </property>
- <layout class="QVBoxLayout" >
- <item>
- <widget class="QLabel" name="queryInfo" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <item>
- <widget class="QLabel" name="queryField" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="queryEdit" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="echoMode" >
- <enum>QLineEdit::Password</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <item>
- <spacer name="spacer4" >
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- <property name="sizeType" >
- <enum>Expanding</enum>
- </property>
- <property name="orientation" >
- <enum>Horizontal</enum>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="buttonOk" >
- <property name="text" >
- <string>&amp;OK</string>
- </property>
- <property name="shortcut" >
- <string/>
- </property>
- <property name="autoDefault" >
- <bool>true</bool>
- </property>
- <property name="default" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="buttonCancel" >
- <property name="text" >
- <string>&amp;Cancel</string>
- </property>
- <property name="shortcut" >
- <string/>
- </property>
- <property name="autoDefault" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
-</ui>
diff --git a/wpa_supplicant/wpa_gui-qt4/wpa_gui.desktop b/wpa_supplicant/wpa_gui-qt4/wpa_gui.desktop
deleted file mode 100644
index ccc7d8741d02..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpa_gui.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=wpa_gui
-Comment=Graphical user interface for wpa_supplicant
-Exec=wpa_gui
-Icon=wpa_gui
-GenericName=wpa_supplicant user interface
-Terminal=false
-Type=Application
-Categories=Qt;Network;
diff --git a/wpa_supplicant/wpa_gui-qt4/wpa_gui.pro b/wpa_supplicant/wpa_gui-qt4/wpa_gui.pro
deleted file mode 100644
index 2317cbd48d04..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpa_gui.pro
+++ /dev/null
@@ -1,62 +0,0 @@
-TEMPLATE = app
-LANGUAGE = C++
-
-CONFIG += qt warn_on release
-
-DEFINES += CONFIG_CTRL_IFACE
-
-win32 {
- LIBS += -lws2_32 -static
- DEFINES += CONFIG_NATIVE_WINDOWS CONFIG_CTRL_IFACE_NAMED_PIPE
- SOURCES += ../../src/utils/os_win32.c
-} else:win32-g++ {
- # cross compilation to win32
- LIBS += -lws2_32 -static -mwindows
- DEFINES += CONFIG_NATIVE_WINDOWS CONFIG_CTRL_IFACE_NAMED_PIPE
- SOURCES += ../../src/utils/os_win32.c
- RESOURCES += icons_png.qrc
-} else:win32-x-g++ {
- # cross compilation to win32
- LIBS += -lws2_32 -static -mwindows
- DEFINES += CONFIG_NATIVE_WINDOWS CONFIG_CTRL_IFACE_NAMED_PIPE
- DEFINES += _X86_
- SOURCES += ../../src/utils/os_win32.c
- RESOURCES += icons_png.qrc
-} else {
- DEFINES += CONFIG_CTRL_IFACE_UNIX
- SOURCES += ../../src/utils/os_unix.c
-}
-
-INCLUDEPATH += . .. ../../src/utils ../../src/common
-
-HEADERS += wpamsg.h \
- wpagui.h \
- eventhistory.h \
- scanresults.h \
- userdatarequest.h \
- networkconfig.h \
- addinterface.h
-
-SOURCES += main.cpp \
- wpagui.cpp \
- eventhistory.cpp \
- scanresults.cpp \
- userdatarequest.cpp \
- networkconfig.cpp \
- addinterface.cpp \
- ../../src/common/wpa_ctrl.c
-
-RESOURCES += icons.qrc
-
-FORMS = wpagui.ui \
- eventhistory.ui \
- scanresults.ui \
- userdatarequest.ui \
- networkconfig.ui
-
-
-unix {
- UI_DIR = .ui
- MOC_DIR = .moc
- OBJECTS_DIR = .obj
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp b/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
deleted file mode 100644
index dcd33b9450f2..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
+++ /dev/null
@@ -1,1699 +0,0 @@
-/*
- * wpa_gui - WpaGui class
- * Copyright (c) 2005-2008, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifdef __MINGW32__
-/* Need to get getopt() */
-#include <unistd.h>
-#endif
-
-#ifdef CONFIG_NATIVE_WINDOWS
-#include <windows.h>
-#endif /* CONFIG_NATIVE_WINDOWS */
-
-#include <cstdio>
-#include <QMessageBox>
-#include <QCloseEvent>
-#include <QImageReader>
-#include <QSettings>
-
-#include "wpagui.h"
-#include "dirent.h"
-#include "wpa_ctrl.h"
-#include "userdatarequest.h"
-#include "networkconfig.h"
-
-#if 1
-/* Silence stdout */
-#define printf wpagui_printf
-static int wpagui_printf(const char *, ...)
-{
- return 0;
-}
-#endif
-
-WpaGui::WpaGui(QApplication *_app, QWidget *parent, const char *, Qt::WFlags)
- : QMainWindow(parent), app(_app)
-{
- setupUi(this);
-
-#ifdef CONFIG_NATIVE_WINDOWS
- fileStopServiceAction = new QAction(this);
- fileStopServiceAction->setObjectName("Stop Service");
- fileStopServiceAction->setIconText("Stop Service");
- fileMenu->insertAction(actionWPS, fileStopServiceAction);
-
- fileStartServiceAction = new QAction(this);
- fileStartServiceAction->setObjectName("Start Service");
- fileStartServiceAction->setIconText("Start Service");
- fileMenu->insertAction(fileStopServiceAction, fileStartServiceAction);
-
- connect(fileStartServiceAction, SIGNAL(triggered()), this,
- SLOT(startService()));
- connect(fileStopServiceAction, SIGNAL(triggered()), this,
- SLOT(stopService()));
-
- addInterfaceAction = new QAction(this);
- addInterfaceAction->setIconText("Add Interface");
- fileMenu->insertAction(fileStartServiceAction, addInterfaceAction);
-
- connect(addInterfaceAction, SIGNAL(triggered()), this,
- SLOT(addInterface()));
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- (void) statusBar();
-
- /*
- * Disable WPS tab by default; it will be enabled if wpa_supplicant is
- * built with WPS support.
- */
- wpsTab->setEnabled(false);
- wpaguiTab->setTabEnabled(wpaguiTab->indexOf(wpsTab), false);
-
- connect(fileEventHistoryAction, SIGNAL(triggered()), this,
- SLOT(eventHistory()));
- connect(fileSaveConfigAction, SIGNAL(triggered()), this,
- SLOT(saveConfig()));
- connect(actionWPS, SIGNAL(triggered()), this, SLOT(wpsDialog()));
- connect(fileExitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- connect(networkAddAction, SIGNAL(triggered()), this,
- SLOT(addNetwork()));
- connect(networkEditAction, SIGNAL(triggered()), this,
- SLOT(editSelectedNetwork()));
- connect(networkRemoveAction, SIGNAL(triggered()), this,
- SLOT(removeSelectedNetwork()));
- connect(networkEnableAllAction, SIGNAL(triggered()), this,
- SLOT(enableAllNetworks()));
- connect(networkDisableAllAction, SIGNAL(triggered()), this,
- SLOT(disableAllNetworks()));
- connect(networkRemoveAllAction, SIGNAL(triggered()), this,
- SLOT(removeAllNetworks()));
- connect(helpIndexAction, SIGNAL(triggered()), this, SLOT(helpIndex()));
- connect(helpContentsAction, SIGNAL(triggered()), this,
- SLOT(helpContents()));
- connect(helpAboutAction, SIGNAL(triggered()), this, SLOT(helpAbout()));
- connect(disconnectButton, SIGNAL(clicked()), this, SLOT(disconnect()));
- connect(scanButton, SIGNAL(clicked()), this, SLOT(scan()));
- connect(connectButton, SIGNAL(clicked()), this, SLOT(connectB()));
- connect(adapterSelect, SIGNAL(activated(const QString&)), this,
- SLOT(selectAdapter(const QString&)));
- connect(networkSelect, SIGNAL(activated(const QString&)), this,
- SLOT(selectNetwork(const QString&)));
- connect(addNetworkButton, SIGNAL(clicked()), this, SLOT(addNetwork()));
- connect(editNetworkButton, SIGNAL(clicked()), this,
- SLOT(editListedNetwork()));
- connect(removeNetworkButton, SIGNAL(clicked()), this,
- SLOT(removeListedNetwork()));
- connect(networkList, SIGNAL(itemSelectionChanged()), this,
- SLOT(updateNetworkDisabledStatus()));
- connect(enableRadioButton, SIGNAL(toggled(bool)), this,
- SLOT(enableListedNetwork(bool)));
- connect(disableRadioButton, SIGNAL(toggled(bool)), this,
- SLOT(disableListedNetwork(bool)));
- connect(scanNetworkButton, SIGNAL(clicked()), this, SLOT(scan()));
- connect(networkList, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
- this, SLOT(editListedNetwork()));
- connect(wpaguiTab, SIGNAL(currentChanged(int)), this,
- SLOT(tabChanged(int)));
- connect(wpsPbcButton, SIGNAL(clicked()), this, SLOT(wpsPbc()));
- connect(wpsPinButton, SIGNAL(clicked()), this, SLOT(wpsGeneratePin()));
- connect(wpsApPinEdit, SIGNAL(textChanged(const QString &)), this,
- SLOT(wpsApPinChanged(const QString &)));
- connect(wpsApPinButton, SIGNAL(clicked()), this, SLOT(wpsApPin()));
-
- eh = NULL;
- scanres = NULL;
- add_iface = NULL;
- udr = NULL;
- tray_icon = NULL;
- startInTray = false;
- ctrl_iface = NULL;
- ctrl_conn = NULL;
- monitor_conn = NULL;
- msgNotifier = NULL;
- ctrl_iface_dir = strdup("/var/run/wpa_supplicant");
-
- parse_argv();
-
- if (app->isSessionRestored()) {
- QSettings settings("wpa_supplicant", "wpa_gui");
- settings.beginGroup("state");
- if (app->sessionId().compare(settings.value("session_id").
- toString()) == 0)
- startInTray = settings.value("in_tray").toBool();
- settings.endGroup();
- }
-
- if (QSystemTrayIcon::isSystemTrayAvailable())
- createTrayIcon(startInTray);
- else
- show();
-
- connectedToService = false;
- textStatus->setText("connecting to wpa_supplicant");
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), SLOT(ping()));
- timer->setSingleShot(FALSE);
- timer->start(1000);
-
- if (openCtrlConnection(ctrl_iface) < 0) {
- printf("Failed to open control connection to "
- "wpa_supplicant.\n");
- }
-
- updateStatus();
- networkMayHaveChanged = true;
- updateNetworks();
-}
-
-
-WpaGui::~WpaGui()
-{
- delete msgNotifier;
-
- if (monitor_conn) {
- wpa_ctrl_detach(monitor_conn);
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- }
- if (ctrl_conn) {
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- }
-
- if (eh) {
- eh->close();
- delete eh;
- eh = NULL;
- }
-
- if (scanres) {
- scanres->close();
- delete scanres;
- scanres = NULL;
- }
-
- if (add_iface) {
- add_iface->close();
- delete add_iface;
- add_iface = NULL;
- }
-
- if (udr) {
- udr->close();
- delete udr;
- udr = NULL;
- }
-
- free(ctrl_iface);
- ctrl_iface = NULL;
-
- free(ctrl_iface_dir);
- ctrl_iface_dir = NULL;
-}
-
-
-void WpaGui::languageChange()
-{
- retranslateUi(this);
-}
-
-
-void WpaGui::parse_argv()
-{
- int c;
- for (;;) {
- c = getopt(qApp->argc(), qApp->argv(), "i:p:t");
- if (c < 0)
- break;
- switch (c) {
- case 'i':
- free(ctrl_iface);
- ctrl_iface = strdup(optarg);
- break;
- case 'p':
- free(ctrl_iface_dir);
- ctrl_iface_dir = strdup(optarg);
- break;
- case 't':
- startInTray = true;
- break;
- }
- }
-}
-
-
-int WpaGui::openCtrlConnection(const char *ifname)
-{
- char *cfile;
- int flen;
- char buf[2048], *pos, *pos2;
- size_t len;
-
- if (ifname) {
- if (ifname != ctrl_iface) {
- free(ctrl_iface);
- ctrl_iface = strdup(ifname);
- }
- } else {
-#ifdef CONFIG_CTRL_IFACE_UDP
- free(ctrl_iface);
- ctrl_iface = strdup("udp");
-#endif /* CONFIG_CTRL_IFACE_UDP */
-#ifdef CONFIG_CTRL_IFACE_UNIX
- struct dirent *dent;
- DIR *dir = opendir(ctrl_iface_dir);
- free(ctrl_iface);
- ctrl_iface = NULL;
- if (dir) {
- while ((dent = readdir(dir))) {
-#ifdef _DIRENT_HAVE_D_TYPE
- /* Skip the file if it is not a socket.
- * Also accept DT_UNKNOWN (0) in case
- * the C library or underlying file
- * system does not support d_type. */
- if (dent->d_type != DT_SOCK &&
- dent->d_type != DT_UNKNOWN)
- continue;
-#endif /* _DIRENT_HAVE_D_TYPE */
-
- if (strcmp(dent->d_name, ".") == 0 ||
- strcmp(dent->d_name, "..") == 0)
- continue;
- printf("Selected interface '%s'\n",
- dent->d_name);
- ctrl_iface = strdup(dent->d_name);
- break;
- }
- closedir(dir);
- }
-#endif /* CONFIG_CTRL_IFACE_UNIX */
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- struct wpa_ctrl *ctrl;
- int ret;
-
- free(ctrl_iface);
- ctrl_iface = NULL;
-
- ctrl = wpa_ctrl_open(NULL);
- if (ctrl) {
- len = sizeof(buf) - 1;
- ret = wpa_ctrl_request(ctrl, "INTERFACES", 10, buf,
- &len, NULL);
- if (ret >= 0) {
- connectedToService = true;
- buf[len] = '\0';
- pos = strchr(buf, '\n');
- if (pos)
- *pos = '\0';
- ctrl_iface = strdup(buf);
- }
- wpa_ctrl_close(ctrl);
- }
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
- }
-
- if (ctrl_iface == NULL) {
-#ifdef CONFIG_NATIVE_WINDOWS
- static bool first = true;
- if (first && !serviceRunning()) {
- first = false;
- if (QMessageBox::warning(
- this, qAppName(),
- "wpa_supplicant service is not running.\n"
- "Do you want to start it?",
- QMessageBox::Yes | QMessageBox::No) ==
- QMessageBox::Yes)
- startService();
- }
-#endif /* CONFIG_NATIVE_WINDOWS */
- return -1;
- }
-
-#ifdef CONFIG_CTRL_IFACE_UNIX
- flen = strlen(ctrl_iface_dir) + strlen(ctrl_iface) + 2;
- cfile = (char *) malloc(flen);
- if (cfile == NULL)
- return -1;
- snprintf(cfile, flen, "%s/%s", ctrl_iface_dir, ctrl_iface);
-#else /* CONFIG_CTRL_IFACE_UNIX */
- flen = strlen(ctrl_iface) + 1;
- cfile = (char *) malloc(flen);
- if (cfile == NULL)
- return -1;
- snprintf(cfile, flen, "%s", ctrl_iface);
-#endif /* CONFIG_CTRL_IFACE_UNIX */
-
- if (ctrl_conn) {
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- }
-
- if (monitor_conn) {
- delete msgNotifier;
- msgNotifier = NULL;
- wpa_ctrl_detach(monitor_conn);
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- }
-
- printf("Trying to connect to '%s'\n", cfile);
- ctrl_conn = wpa_ctrl_open(cfile);
- if (ctrl_conn == NULL) {
- free(cfile);
- return -1;
- }
- monitor_conn = wpa_ctrl_open(cfile);
- free(cfile);
- if (monitor_conn == NULL) {
- wpa_ctrl_close(ctrl_conn);
- return -1;
- }
- if (wpa_ctrl_attach(monitor_conn)) {
- printf("Failed to attach to wpa_supplicant\n");
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- return -1;
- }
-
-#if defined(CONFIG_CTRL_IFACE_UNIX) || defined(CONFIG_CTRL_IFACE_UDP)
- msgNotifier = new QSocketNotifier(wpa_ctrl_get_fd(monitor_conn),
- QSocketNotifier::Read, this);
- connect(msgNotifier, SIGNAL(activated(int)), SLOT(receiveMsgs()));
-#endif
-
- adapterSelect->clear();
- adapterSelect->addItem(ctrl_iface);
- adapterSelect->setCurrentIndex(0);
-
- len = sizeof(buf) - 1;
- if (wpa_ctrl_request(ctrl_conn, "INTERFACES", 10, buf, &len, NULL) >=
- 0) {
- buf[len] = '\0';
- pos = buf;
- while (*pos) {
- pos2 = strchr(pos, '\n');
- if (pos2)
- *pos2 = '\0';
- if (strcmp(pos, ctrl_iface) != 0)
- adapterSelect->addItem(pos);
- if (pos2)
- pos = pos2 + 1;
- else
- break;
- }
- }
-
- len = sizeof(buf) - 1;
- if (wpa_ctrl_request(ctrl_conn, "GET_CAPABILITY eap", 18, buf, &len,
- NULL) >= 0) {
- buf[len] = '\0';
-
- QString res(buf);
- QStringList types = res.split(QChar(' '));
- bool wps = types.contains("WSC");
- actionWPS->setEnabled(wps);
- wpsTab->setEnabled(wps);
- wpaguiTab->setTabEnabled(wpaguiTab->indexOf(wpsTab), wps);
- }
-
- return 0;
-}
-
-
-static void wpa_gui_msg_cb(char *msg, size_t)
-{
- /* This should not happen anymore since two control connections are
- * used. */
- printf("missed message: %s\n", msg);
-}
-
-
-int WpaGui::ctrlRequest(const char *cmd, char *buf, size_t *buflen)
-{
- int ret;
-
- if (ctrl_conn == NULL)
- return -3;
- ret = wpa_ctrl_request(ctrl_conn, cmd, strlen(cmd), buf, buflen,
- wpa_gui_msg_cb);
- if (ret == -2)
- printf("'%s' command timed out.\n", cmd);
- else if (ret < 0)
- printf("'%s' command failed.\n", cmd);
-
- return ret;
-}
-
-
-void WpaGui::updateStatus()
-{
- char buf[2048], *start, *end, *pos;
- size_t len;
-
- pingsToStatusUpdate = 10;
-
- len = sizeof(buf) - 1;
- if (ctrl_conn == NULL || ctrlRequest("STATUS", buf, &len) < 0) {
- textStatus->setText("Could not get status from "
- "wpa_supplicant");
- textAuthentication->clear();
- textEncryption->clear();
- textSsid->clear();
- textBssid->clear();
- textIpAddress->clear();
-
-#ifdef CONFIG_NATIVE_WINDOWS
- static bool first = true;
- if (first && connectedToService &&
- (ctrl_iface == NULL || *ctrl_iface == '\0')) {
- first = false;
- if (QMessageBox::information(
- this, qAppName(),
- "No network interfaces in use.\n"
- "Would you like to add one?",
- QMessageBox::Yes | QMessageBox::No) ==
- QMessageBox::Yes)
- addInterface();
- }
-#endif /* CONFIG_NATIVE_WINDOWS */
- return;
- }
-
- buf[len] = '\0';
-
- bool auth_updated = false, ssid_updated = false;
- bool bssid_updated = false, ipaddr_updated = false;
- bool status_updated = false;
- char *pairwise_cipher = NULL, *group_cipher = NULL;
-
- start = buf;
- while (*start) {
- bool last = false;
- end = strchr(start, '\n');
- if (end == NULL) {
- last = true;
- end = start;
- while (end[0] && end[1])
- end++;
- }
- *end = '\0';
-
- pos = strchr(start, '=');
- if (pos) {
- *pos++ = '\0';
- if (strcmp(start, "bssid") == 0) {
- bssid_updated = true;
- textBssid->setText(pos);
- } else if (strcmp(start, "ssid") == 0) {
- ssid_updated = true;
- textSsid->setText(pos);
- } else if (strcmp(start, "ip_address") == 0) {
- ipaddr_updated = true;
- textIpAddress->setText(pos);
- } else if (strcmp(start, "wpa_state") == 0) {
- status_updated = true;
- textStatus->setText(pos);
- } else if (strcmp(start, "key_mgmt") == 0) {
- auth_updated = true;
- textAuthentication->setText(pos);
- /* TODO: could add EAP status to this */
- } else if (strcmp(start, "pairwise_cipher") == 0) {
- pairwise_cipher = pos;
- } else if (strcmp(start, "group_cipher") == 0) {
- group_cipher = pos;
- }
- }
-
- if (last)
- break;
- start = end + 1;
- }
-
- if (pairwise_cipher || group_cipher) {
- QString encr;
- if (pairwise_cipher && group_cipher &&
- strcmp(pairwise_cipher, group_cipher) != 0) {
- encr.append(pairwise_cipher);
- encr.append(" + ");
- encr.append(group_cipher);
- } else if (pairwise_cipher) {
- encr.append(pairwise_cipher);
- } else {
- encr.append(group_cipher);
- encr.append(" [group key only]");
- }
- textEncryption->setText(encr);
- } else
- textEncryption->clear();
-
- if (!status_updated)
- textStatus->clear();
- if (!auth_updated)
- textAuthentication->clear();
- if (!ssid_updated)
- textSsid->clear();
- if (!bssid_updated)
- textBssid->clear();
- if (!ipaddr_updated)
- textIpAddress->clear();
-}
-
-
-void WpaGui::updateNetworks()
-{
- char buf[2048], *start, *end, *id, *ssid, *bssid, *flags;
- size_t len;
- int first_active = -1;
- int was_selected = -1;
- bool current = false;
-
- if (!networkMayHaveChanged)
- return;
-
- if (networkList->currentRow() >= 0)
- was_selected = networkList->currentRow();
-
- networkSelect->clear();
- networkList->clear();
-
- if (ctrl_conn == NULL)
- return;
-
- len = sizeof(buf) - 1;
- if (ctrlRequest("LIST_NETWORKS", buf, &len) < 0)
- return;
-
- buf[len] = '\0';
- start = strchr(buf, '\n');
- if (start == NULL)
- return;
- start++;
-
- while (*start) {
- bool last = false;
- end = strchr(start, '\n');
- if (end == NULL) {
- last = true;
- end = start;
- while (end[0] && end[1])
- end++;
- }
- *end = '\0';
-
- id = start;
- ssid = strchr(id, '\t');
- if (ssid == NULL)
- break;
- *ssid++ = '\0';
- bssid = strchr(ssid, '\t');
- if (bssid == NULL)
- break;
- *bssid++ = '\0';
- flags = strchr(bssid, '\t');
- if (flags == NULL)
- break;
- *flags++ = '\0';
-
- QString network(id);
- network.append(": ");
- network.append(ssid);
- networkSelect->addItem(network);
- networkList->addItem(network);
-
- if (strstr(flags, "[CURRENT]")) {
- networkSelect->setCurrentIndex(networkSelect->count() -
- 1);
- current = true;
- } else if (first_active < 0 &&
- strstr(flags, "[DISABLED]") == NULL)
- first_active = networkSelect->count() - 1;
-
- if (last)
- break;
- start = end + 1;
- }
-
- if (networkSelect->count() > 1)
- networkSelect->addItem("Select any network");
-
- if (!current && first_active >= 0)
- networkSelect->setCurrentIndex(first_active);
-
- if (was_selected >= 0 && networkList->count() > 0) {
- if (was_selected < networkList->count())
- networkList->setCurrentRow(was_selected);
- else
- networkList->setCurrentRow(networkList->count() - 1);
- }
- else
- networkList->setCurrentRow(networkSelect->currentIndex());
-
- networkMayHaveChanged = false;
-}
-
-
-void WpaGui::helpIndex()
-{
- printf("helpIndex\n");
-}
-
-
-void WpaGui::helpContents()
-{
- printf("helpContents\n");
-}
-
-
-void WpaGui::helpAbout()
-{
- QMessageBox::about(this, "wpa_gui for wpa_supplicant",
- "Copyright (c) 2003-2008,\n"
- "Jouni Malinen <j@w1.fi>\n"
- "and contributors.\n"
- "\n"
- "This program is free software. You can\n"
- "distribute it and/or modify it under the terms "
- "of\n"
- "the GNU General Public License version 2.\n"
- "\n"
- "Alternatively, this software may be distributed\n"
- "under the terms of the BSD license.\n"
- "\n"
- "This product includes software developed\n"
- "by the OpenSSL Project for use in the\n"
- "OpenSSL Toolkit (http://www.openssl.org/)\n");
-}
-
-
-void WpaGui::disconnect()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
- ctrlRequest("DISCONNECT", reply, &reply_len);
- stopWpsRun(false);
-}
-
-
-void WpaGui::scan()
-{
- if (scanres) {
- scanres->close();
- delete scanres;
- }
-
- scanres = new ScanResults();
- if (scanres == NULL)
- return;
- scanres->setWpaGui(this);
- scanres->show();
- scanres->exec();
-}
-
-
-void WpaGui::eventHistory()
-{
- if (eh) {
- eh->close();
- delete eh;
- }
-
- eh = new EventHistory();
- if (eh == NULL)
- return;
- eh->addEvents(msgs);
- eh->show();
- eh->exec();
-}
-
-
-void WpaGui::ping()
-{
- char buf[10];
- size_t len;
-
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- /*
- * QSocketNotifier cannot be used with Windows named pipes, so use a
- * timer to check for received messages for now. This could be
- * optimized be doing something specific to named pipes or Windows
- * events, but it is not clear what would be the best way of doing that
- * in Qt.
- */
- receiveMsgs();
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
-
- if (scanres && !scanres->isVisible()) {
- delete scanres;
- scanres = NULL;
- }
-
- if (eh && !eh->isVisible()) {
- delete eh;
- eh = NULL;
- }
-
- if (udr && !udr->isVisible()) {
- delete udr;
- udr = NULL;
- }
-
- len = sizeof(buf) - 1;
- if (ctrlRequest("PING", buf, &len) < 0) {
- printf("PING failed - trying to reconnect\n");
- if (openCtrlConnection(ctrl_iface) >= 0) {
- printf("Reconnected successfully\n");
- pingsToStatusUpdate = 0;
- }
- }
-
- pingsToStatusUpdate--;
- if (pingsToStatusUpdate <= 0) {
- updateStatus();
- updateNetworks();
- }
-
-#ifndef CONFIG_CTRL_IFACE_NAMED_PIPE
- /* Use less frequent pings and status updates when the main window is
- * hidden (running in taskbar). */
- int interval = isHidden() ? 5000 : 1000;
- if (timer->interval() != interval)
- timer->setInterval(interval);
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
-}
-
-
-static int str_match(const char *a, const char *b)
-{
- return strncmp(a, b, strlen(b)) == 0;
-}
-
-
-void WpaGui::processMsg(char *msg)
-{
- char *pos = msg, *pos2;
- int priority = 2;
-
- if (*pos == '<') {
- /* skip priority */
- pos++;
- priority = atoi(pos);
- pos = strchr(pos, '>');
- if (pos)
- pos++;
- else
- pos = msg;
- }
-
- WpaMsg wm(pos, priority);
- if (eh)
- eh->addEvent(wm);
- msgs.append(wm);
- while (msgs.count() > 100)
- msgs.pop_front();
-
- /* Update last message with truncated version of the event */
- if (strncmp(pos, "CTRL-", 5) == 0) {
- pos2 = strchr(pos, str_match(pos, WPA_CTRL_REQ) ? ':' : ' ');
- if (pos2)
- pos2++;
- else
- pos2 = pos;
- } else
- pos2 = pos;
- QString lastmsg = pos2;
- lastmsg.truncate(40);
- textLastMessage->setText(lastmsg);
-
- pingsToStatusUpdate = 0;
- networkMayHaveChanged = true;
-
- if (str_match(pos, WPA_CTRL_REQ))
- processCtrlReq(pos + strlen(WPA_CTRL_REQ));
- else if (str_match(pos, WPA_EVENT_SCAN_RESULTS) && scanres)
- scanres->updateResults();
- else if (str_match(pos, WPA_EVENT_DISCONNECTED))
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Disconnected from network.");
- else if (str_match(pos, WPA_EVENT_CONNECTED)) {
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Connection to network established.");
- QTimer::singleShot(5 * 1000, this, SLOT(showTrayStatus()));
- stopWpsRun(true);
- } else if (str_match(pos, WPS_EVENT_AP_AVAILABLE_PBC)) {
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Wi-Fi Protected Setup (WPS) AP\n"
- "in active PBC mode found.");
- wpsStatusText->setText("WPS AP in active PBC mode found");
- wpaguiTab->setCurrentWidget(wpsTab);
- wpsInstructions->setText("Press the PBC button on the screen "
- "to start registration");
- } else if (str_match(pos, WPS_EVENT_AP_AVAILABLE_PIN)) {
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Wi-Fi Protected Setup (WPS) AP\n"
- " in active PIN mode found.");
- wpsStatusText->setText("WPS AP with recently selected "
- "registrar");
- wpaguiTab->setCurrentWidget(wpsTab);
- } else if (str_match(pos, WPS_EVENT_AP_AVAILABLE)) {
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Wi-Fi Protected Setup (WPS)\n"
- "AP detected.");
- wpsStatusText->setText("WPS AP detected");
- wpaguiTab->setCurrentWidget(wpsTab);
- } else if (str_match(pos, WPS_EVENT_OVERLAP)) {
- showTrayMessage(QSystemTrayIcon::Information, 3,
- "Wi-Fi Protected Setup (WPS)\n"
- "PBC mode overlap detected.");
- wpsStatusText->setText("PBC mode overlap detected");
- wpsInstructions->setText("More than one AP is currently in "
- "active WPS PBC mode. Wait couple of "
- "minutes and try again");
- wpaguiTab->setCurrentWidget(wpsTab);
- } else if (str_match(pos, WPS_EVENT_CRED_RECEIVED)) {
- wpsStatusText->setText("Network configuration received");
- wpaguiTab->setCurrentWidget(wpsTab);
- } else if (str_match(pos, WPA_EVENT_EAP_METHOD)) {
- if (strstr(pos, "(WSC)"))
- wpsStatusText->setText("Registration started");
- } else if (str_match(pos, WPS_EVENT_M2D)) {
- wpsStatusText->setText("Registrar does not yet know PIN");
- } else if (str_match(pos, WPS_EVENT_FAIL)) {
- wpsStatusText->setText("Registration failed");
- } else if (str_match(pos, WPS_EVENT_SUCCESS)) {
- wpsStatusText->setText("Registration succeeded");
- }
-}
-
-
-void WpaGui::processCtrlReq(const char *req)
-{
- if (udr) {
- udr->close();
- delete udr;
- }
- udr = new UserDataRequest();
- if (udr == NULL)
- return;
- if (udr->setParams(this, req) < 0) {
- delete udr;
- udr = NULL;
- return;
- }
- udr->show();
- udr->exec();
-}
-
-
-void WpaGui::receiveMsgs()
-{
- char buf[256];
- size_t len;
-
- while (monitor_conn && wpa_ctrl_pending(monitor_conn) > 0) {
- len = sizeof(buf) - 1;
- if (wpa_ctrl_recv(monitor_conn, buf, &len) == 0) {
- buf[len] = '\0';
- processMsg(buf);
- }
- }
-}
-
-
-void WpaGui::connectB()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
- ctrlRequest("REASSOCIATE", reply, &reply_len);
-}
-
-
-void WpaGui::selectNetwork( const QString &sel )
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (cmd.startsWith("Select any")) {
- cmd = "any";
- } else {
- int pos = cmd.indexOf(':');
- if (pos < 0) {
- printf("Invalid selectNetwork '%s'\n",
- cmd.toAscii().constData());
- return;
- }
- cmd.truncate(pos);
- }
- cmd.prepend("SELECT_NETWORK ");
- ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
- triggerUpdate();
- stopWpsRun(false);
-}
-
-
-void WpaGui::enableNetwork(const QString &sel)
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (!cmd.startsWith("all")) {
- int pos = cmd.indexOf(':');
- if (pos < 0) {
- printf("Invalid enableNetwork '%s'\n",
- cmd.toAscii().constData());
- return;
- }
- cmd.truncate(pos);
- }
- cmd.prepend("ENABLE_NETWORK ");
- ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
- triggerUpdate();
-}
-
-
-void WpaGui::disableNetwork(const QString &sel)
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (!cmd.startsWith("all")) {
- int pos = cmd.indexOf(':');
- if (pos < 0) {
- printf("Invalid disableNetwork '%s'\n",
- cmd.toAscii().constData());
- return;
- }
- cmd.truncate(pos);
- }
- cmd.prepend("DISABLE_NETWORK ");
- ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
- triggerUpdate();
-}
-
-
-void WpaGui::editNetwork(const QString &sel)
-{
- QString cmd(sel);
- int id = -1;
-
- if (!cmd.startsWith("Select any")) {
- int pos = sel.indexOf(':');
- if (pos < 0) {
- printf("Invalid editNetwork '%s'\n",
- cmd.toAscii().constData());
- return;
- }
- cmd.truncate(pos);
- id = cmd.toInt();
- }
-
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(this);
-
- if (id >= 0)
- nc->paramsFromConfig(id);
- else
- nc->newNetwork();
-
- nc->show();
- nc->exec();
-}
-
-
-void WpaGui::editSelectedNetwork()
-{
- if (networkSelect->count() < 1) {
- QMessageBox::information(this, "No Networks",
- "There are no networks to edit.\n");
- return;
- }
- QString sel(networkSelect->currentText());
- editNetwork(sel);
-}
-
-
-void WpaGui::editListedNetwork()
-{
- if (networkList->currentRow() < 0) {
- QMessageBox::information(this, "Select A Network",
- "Select a network from the list to"
- " edit it.\n");
- return;
- }
- QString sel(networkList->currentItem()->text());
- editNetwork(sel);
-}
-
-
-void WpaGui::triggerUpdate()
-{
- updateStatus();
- networkMayHaveChanged = true;
- updateNetworks();
-}
-
-
-void WpaGui::addNetwork()
-{
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(this);
- nc->newNetwork();
- nc->show();
- nc->exec();
-}
-
-
-void WpaGui::removeNetwork(const QString &sel)
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (cmd.startsWith("Select any"))
- return;
-
- if (!cmd.startsWith("all")) {
- int pos = cmd.indexOf(':');
- if (pos < 0) {
- printf("Invalid removeNetwork '%s'\n",
- cmd.toAscii().constData());
- return;
- }
- cmd.truncate(pos);
- }
- cmd.prepend("REMOVE_NETWORK ");
- ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
- triggerUpdate();
-}
-
-
-void WpaGui::removeSelectedNetwork()
-{
- if (networkSelect->count() < 1) {
- QMessageBox::information(this, "No Networks",
- "There are no networks to remove.\n");
- return;
- }
- QString sel(networkSelect->currentText());
- removeNetwork(sel);
-}
-
-
-void WpaGui::removeListedNetwork()
-{
- if (networkList->currentRow() < 0) {
- QMessageBox::information(this, "Select A Network",
- "Select a network from the list to"
- " remove it.\n");
- return;
- }
- QString sel(networkList->currentItem()->text());
- removeNetwork(sel);
-}
-
-
-void WpaGui::enableAllNetworks()
-{
- QString sel("all");
- enableNetwork(sel);
-}
-
-
-void WpaGui::disableAllNetworks()
-{
- QString sel("all");
- disableNetwork(sel);
-}
-
-
-void WpaGui::removeAllNetworks()
-{
- QString sel("all");
- removeNetwork(sel);
-}
-
-
-int WpaGui::getNetworkDisabled(const QString &sel)
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply) - 1;
- int pos = cmd.indexOf(':');
- if (pos < 0) {
- printf("Invalid getNetworkDisabled '%s'\n",
- cmd.toAscii().constData());
- return -1;
- }
- cmd.truncate(pos);
- cmd.prepend("GET_NETWORK ");
- cmd.append(" disabled");
-
- if (ctrlRequest(cmd.toAscii().constData(), reply, &reply_len) >= 0
- && reply_len >= 1) {
- reply[reply_len] = '\0';
- if (!str_match(reply, "FAIL"))
- return atoi(reply);
- }
-
- return -1;
-}
-
-
-void WpaGui::updateNetworkDisabledStatus()
-{
- if (networkList->currentRow() < 0)
- return;
-
- QString sel(networkList->currentItem()->text());
-
- switch (getNetworkDisabled(sel)) {
- case 0:
- if (!enableRadioButton->isChecked())
- enableRadioButton->setChecked(true);
- return;
- case 1:
- if (!disableRadioButton->isChecked())
- disableRadioButton->setChecked(true);
- return;
- }
-}
-
-
-void WpaGui::enableListedNetwork(bool enabled)
-{
- if (networkList->currentRow() < 0 || !enabled)
- return;
-
- QString sel(networkList->currentItem()->text());
-
- if (getNetworkDisabled(sel) == 1)
- enableNetwork(sel);
-}
-
-
-void WpaGui::disableListedNetwork(bool disabled)
-{
- if (networkList->currentRow() < 0 || !disabled)
- return;
-
- QString sel(networkList->currentItem()->text());
-
- if (getNetworkDisabled(sel) == 0)
- disableNetwork(sel);
-}
-
-
-void WpaGui::saveConfig()
-{
- char buf[10];
- size_t len;
-
- len = sizeof(buf) - 1;
- ctrlRequest("SAVE_CONFIG", buf, &len);
-
- buf[len] = '\0';
-
- if (str_match(buf, "FAIL"))
- QMessageBox::warning(this, "Failed to save configuration",
- "The configuration could not be saved.\n"
- "\n"
- "The update_config=1 configuration option\n"
- "must be used for configuration saving to\n"
- "be permitted.\n");
- else
- QMessageBox::information(this, "Saved configuration",
- "The current configuration was saved."
- "\n");
-}
-
-
-void WpaGui::selectAdapter( const QString & sel )
-{
- if (openCtrlConnection(sel.toAscii().constData()) < 0)
- printf("Failed to open control connection to "
- "wpa_supplicant.\n");
- updateStatus();
- updateNetworks();
-}
-
-
-void WpaGui::createTrayIcon(bool trayOnly)
-{
- QApplication::setQuitOnLastWindowClosed(false);
-
- tray_icon = new QSystemTrayIcon(this);
- tray_icon->setToolTip(qAppName() + " - wpa_supplicant user interface");
- if (QImageReader::supportedImageFormats().contains(QByteArray("svg")))
- tray_icon->setIcon(QIcon(":/icons/wpa_gui.svg"));
- else
- tray_icon->setIcon(QIcon(":/icons/wpa_gui.png"));
-
- connect(tray_icon,
- SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
- this, SLOT(trayActivated(QSystemTrayIcon::ActivationReason)));
-
- ackTrayIcon = false;
-
- tray_menu = new QMenu(this);
-
- disconnectAction = new QAction("&Disconnect", this);
- reconnectAction = new QAction("Re&connect", this);
- connect(disconnectAction, SIGNAL(triggered()), this,
- SLOT(disconnect()));
- connect(reconnectAction, SIGNAL(triggered()), this,
- SLOT(connectB()));
- tray_menu->addAction(disconnectAction);
- tray_menu->addAction(reconnectAction);
- tray_menu->addSeparator();
-
- eventAction = new QAction("&Event History", this);
- scanAction = new QAction("Scan &Results", this);
- statAction = new QAction("S&tatus", this);
- connect(eventAction, SIGNAL(triggered()), this, SLOT(eventHistory()));
- connect(scanAction, SIGNAL(triggered()), this, SLOT(scan()));
- connect(statAction, SIGNAL(triggered()), this, SLOT(showTrayStatus()));
- tray_menu->addAction(eventAction);
- tray_menu->addAction(scanAction);
- tray_menu->addAction(statAction);
- tray_menu->addSeparator();
-
- showAction = new QAction("&Show Window", this);
- hideAction = new QAction("&Hide Window", this);
- quitAction = new QAction("&Quit", this);
- connect(showAction, SIGNAL(triggered()), this, SLOT(show()));
- connect(hideAction, SIGNAL(triggered()), this, SLOT(hide()));
- connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- tray_menu->addAction(showAction);
- tray_menu->addAction(hideAction);
- tray_menu->addSeparator();
- tray_menu->addAction(quitAction);
-
- tray_icon->setContextMenu(tray_menu);
-
- tray_icon->show();
-
- if (!trayOnly)
- show();
- inTray = trayOnly;
-}
-
-
-void WpaGui::showTrayMessage(QSystemTrayIcon::MessageIcon type, int sec,
- const QString & msg)
-{
- if (!QSystemTrayIcon::supportsMessages())
- return;
-
- if (isVisible() || !tray_icon || !tray_icon->isVisible())
- return;
-
- tray_icon->showMessage(qAppName(), msg, type, sec * 1000);
-}
-
-
-void WpaGui::trayActivated(QSystemTrayIcon::ActivationReason how)
- {
- switch (how) {
- /* use close() here instead of hide() and allow the
- * custom closeEvent handler take care of children */
- case QSystemTrayIcon::Trigger:
- ackTrayIcon = true;
- if (isVisible()) {
- close();
- inTray = true;
- } else {
- show();
- inTray = false;
- }
- break;
- case QSystemTrayIcon::MiddleClick:
- showTrayStatus();
- break;
- default:
- break;
- }
-}
-
-
-void WpaGui::showTrayStatus()
-{
- char buf[2048];
- size_t len;
-
- len = sizeof(buf) - 1;
- if (ctrlRequest("STATUS", buf, &len) < 0)
- return;
- buf[len] = '\0';
-
- QString msg, status(buf);
-
- QStringList lines = status.split(QRegExp("\\n"));
- for (QStringList::Iterator it = lines.begin();
- it != lines.end(); it++) {
- int pos = (*it).indexOf('=') + 1;
- if (pos < 1)
- continue;
-
- if ((*it).startsWith("bssid="))
- msg.append("BSSID:\t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("ssid="))
- msg.append("SSID: \t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("pairwise_cipher="))
- msg.append("PAIR: \t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("group_cipher="))
- msg.append("GROUP:\t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("key_mgmt="))
- msg.append("AUTH: \t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("wpa_state="))
- msg.append("STATE:\t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("ip_address="))
- msg.append("IP: \t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("Supplicant PAE state="))
- msg.append("PAE: \t" + (*it).mid(pos) + "\n");
- else if ((*it).startsWith("EAP state="))
- msg.append("EAP: \t" + (*it).mid(pos) + "\n");
- }
-
- if (!msg.isEmpty())
- showTrayMessage(QSystemTrayIcon::Information, 10, msg);
-}
-
-
-void WpaGui::closeEvent(QCloseEvent *event)
-{
- if (eh) {
- eh->close();
- delete eh;
- eh = NULL;
- }
-
- if (scanres) {
- scanres->close();
- delete scanres;
- scanres = NULL;
- }
-
- if (udr) {
- udr->close();
- delete udr;
- udr = NULL;
- }
-
- if (tray_icon && !ackTrayIcon) {
- /* give user a visual hint that the tray icon exists */
- if (QSystemTrayIcon::supportsMessages()) {
- hide();
- showTrayMessage(QSystemTrayIcon::Information, 3,
- qAppName() + " will keep running in "
- "the system tray.");
- } else {
- QMessageBox::information(this, qAppName() + " systray",
- "The program will keep "
- "running in the system "
- "tray.");
- }
- ackTrayIcon = true;
- }
-
- event->accept();
-}
-
-
-void WpaGui::wpsDialog()
-{
- wpaguiTab->setCurrentWidget(wpsTab);
-}
-
-
-void WpaGui::tabChanged(int index)
-{
- if (index != 2)
- return;
-
- if (wpsRunning)
- return;
-
- wpsApPinEdit->setEnabled(!bssFromScan.isEmpty());
- if (bssFromScan.isEmpty())
- wpsApPinButton->setEnabled(false);
-}
-
-
-void WpaGui::wpsPbc()
-{
- char reply[20];
- size_t reply_len = sizeof(reply);
-
- if (ctrlRequest("WPS_PBC", reply, &reply_len) < 0)
- return;
-
- wpsPinEdit->setEnabled(false);
- if (wpsStatusText->text().compare("WPS AP in active PBC mode found")) {
- wpsInstructions->setText("Press the push button on the AP to "
- "start the PBC mode.");
- } else {
- wpsInstructions->setText("If you have not yet done so, press "
- "the push button on the AP to start "
- "the PBC mode.");
- }
- wpsStatusText->setText("Waiting for Registrar");
- wpsRunning = true;
-}
-
-
-void WpaGui::wpsGeneratePin()
-{
- char reply[20];
- size_t reply_len = sizeof(reply) - 1;
-
- if (ctrlRequest("WPS_PIN any", reply, &reply_len) < 0)
- return;
-
- reply[reply_len] = '\0';
-
- wpsPinEdit->setText(reply);
- wpsPinEdit->setEnabled(true);
- wpsInstructions->setText("Enter the generated PIN into the Registrar "
- "(either the internal one in the AP or an "
- "external one).");
- wpsStatusText->setText("Waiting for Registrar");
- wpsRunning = true;
-}
-
-
-void WpaGui::setBssFromScan(const QString &bssid)
-{
- bssFromScan = bssid;
- wpsApPinEdit->setEnabled(!bssFromScan.isEmpty());
- wpsApPinButton->setEnabled(wpsApPinEdit->text().length() == 8);
- wpsStatusText->setText("WPS AP selected from scan results");
- wpsInstructions->setText("If you want to use an AP device PIN, e.g., "
- "from a label in the device, enter the eight "
- "digit AP PIN and click Use AP PIN button.");
-}
-
-
-void WpaGui::wpsApPinChanged(const QString &text)
-{
- wpsApPinButton->setEnabled(text.length() == 8);
-}
-
-
-void WpaGui::wpsApPin()
-{
- char reply[20];
- size_t reply_len = sizeof(reply);
-
- QString cmd("WPS_REG " + bssFromScan + " " + wpsApPinEdit->text());
- if (ctrlRequest(cmd.toAscii().constData(), reply, &reply_len) < 0)
- return;
-
- wpsStatusText->setText("Waiting for AP/Enrollee");
- wpsRunning = true;
-}
-
-
-void WpaGui::stopWpsRun(bool success)
-{
- if (wpsRunning)
- wpsStatusText->setText(success ? "Connected to the network" :
- "Stopped");
- else
- wpsStatusText->setText("");
- wpsPinEdit->setEnabled(false);
- wpsInstructions->setText("");
- wpsRunning = false;
- bssFromScan = "";
- wpsApPinEdit->setEnabled(false);
- wpsApPinButton->setEnabled(false);
-}
-
-
-#ifdef CONFIG_NATIVE_WINDOWS
-
-#ifndef WPASVC_NAME
-#define WPASVC_NAME TEXT("wpasvc")
-#endif
-
-class ErrorMsg : public QMessageBox {
-public:
- ErrorMsg(QWidget *parent, DWORD last_err = GetLastError());
- void showMsg(QString msg);
-private:
- DWORD err;
-};
-
-ErrorMsg::ErrorMsg(QWidget *parent, DWORD last_err) :
- QMessageBox(parent), err(last_err)
-{
- setWindowTitle("wpa_gui error");
- setIcon(QMessageBox::Warning);
-}
-
-void ErrorMsg::showMsg(QString msg)
-{
- LPTSTR buf;
-
- setText(msg);
- if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL, err, 0, (LPTSTR) (void *) &buf,
- 0, NULL) > 0) {
- QString msg = QString::fromWCharArray(buf);
- setInformativeText(QString("[%1] %2").arg(err).arg(msg));
- LocalFree(buf);
- } else {
- setInformativeText(QString("[%1]").arg(err));
- }
-
- exec();
-}
-
-
-void WpaGui::startService()
-{
- SC_HANDLE svc, scm;
-
- scm = OpenSCManager(0, 0, SC_MANAGER_CONNECT);
- if (!scm) {
- ErrorMsg(this).showMsg("OpenSCManager failed");
- return;
- }
-
- svc = OpenService(scm, WPASVC_NAME, SERVICE_START);
- if (!svc) {
- ErrorMsg(this).showMsg("OpenService failed");
- CloseServiceHandle(scm);
- return;
- }
-
- if (!StartService(svc, 0, NULL)) {
- ErrorMsg(this).showMsg("Failed to start wpa_supplicant "
- "service");
- }
-
- CloseServiceHandle(svc);
- CloseServiceHandle(scm);
-}
-
-
-void WpaGui::stopService()
-{
- SC_HANDLE svc, scm;
- SERVICE_STATUS status;
-
- scm = OpenSCManager(0, 0, SC_MANAGER_CONNECT);
- if (!scm) {
- ErrorMsg(this).showMsg("OpenSCManager failed");
- return;
- }
-
- svc = OpenService(scm, WPASVC_NAME, SERVICE_STOP);
- if (!svc) {
- ErrorMsg(this).showMsg("OpenService failed");
- CloseServiceHandle(scm);
- return;
- }
-
- if (!ControlService(svc, SERVICE_CONTROL_STOP, &status)) {
- ErrorMsg(this).showMsg("Failed to stop wpa_supplicant "
- "service");
- }
-
- CloseServiceHandle(svc);
- CloseServiceHandle(scm);
-}
-
-
-bool WpaGui::serviceRunning()
-{
- SC_HANDLE svc, scm;
- SERVICE_STATUS status;
- bool running = false;
-
- scm = OpenSCManager(0, 0, SC_MANAGER_CONNECT);
- if (!scm) {
- printf("OpenSCManager failed: %d\n", (int) GetLastError());
- return false;
- }
-
- svc = OpenService(scm, WPASVC_NAME, SERVICE_QUERY_STATUS);
- if (!svc) {
- printf("OpenService failed: %d\n\n", (int) GetLastError());
- CloseServiceHandle(scm);
- return false;
- }
-
- if (QueryServiceStatus(svc, &status)) {
- if (status.dwCurrentState != SERVICE_STOPPED)
- running = true;
- }
-
- CloseServiceHandle(svc);
- CloseServiceHandle(scm);
-
- return running;
-}
-
-#endif /* CONFIG_NATIVE_WINDOWS */
-
-
-void WpaGui::addInterface()
-{
- if (add_iface) {
- add_iface->close();
- delete add_iface;
- }
- add_iface = new AddInterface(this, this);
- add_iface->show();
- add_iface->exec();
-}
-
-
-void WpaGui::saveState()
-{
- QSettings settings("wpa_supplicant", "wpa_gui");
- settings.beginGroup("state");
- settings.setValue("session_id", app->sessionId());
- settings.setValue("in_tray", inTray);
- settings.endGroup();
-}
diff --git a/wpa_supplicant/wpa_gui-qt4/wpagui.h b/wpa_supplicant/wpa_gui-qt4/wpagui.h
deleted file mode 100644
index a53396541e64..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * wpa_gui - WpaGui class
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef WPAGUI_H
-#define WPAGUI_H
-
-#include <QSystemTrayIcon>
-#include <QObject>
-#include "ui_wpagui.h"
-#include "addinterface.h"
-
-class UserDataRequest;
-
-
-class WpaGui : public QMainWindow, public Ui::WpaGui
-{
- Q_OBJECT
-
-public:
- WpaGui(QApplication *app, QWidget *parent = 0, const char *name = 0,
- Qt::WFlags fl = 0);
- ~WpaGui();
-
- virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen);
- virtual void triggerUpdate();
- virtual void editNetwork(const QString &sel);
- virtual void removeNetwork(const QString &sel);
- virtual void enableNetwork(const QString &sel);
- virtual void disableNetwork(const QString &sel);
- virtual int getNetworkDisabled(const QString &sel);
- void setBssFromScan(const QString &bssid);
- void saveState();
-
-public slots:
- virtual void parse_argv();
- virtual void updateStatus();
- virtual void updateNetworks();
- virtual void helpIndex();
- virtual void helpContents();
- virtual void helpAbout();
- virtual void disconnect();
- virtual void scan();
- virtual void eventHistory();
- virtual void ping();
- virtual void processMsg(char *msg);
- virtual void processCtrlReq(const char *req);
- virtual void receiveMsgs();
- virtual void connectB();
- virtual void selectNetwork(const QString &sel);
- virtual void editSelectedNetwork();
- virtual void editListedNetwork();
- virtual void removeSelectedNetwork();
- virtual void removeListedNetwork();
- virtual void addNetwork();
- virtual void enableAllNetworks();
- virtual void disableAllNetworks();
- virtual void removeAllNetworks();
- virtual void saveConfig();
- virtual void selectAdapter(const QString &sel);
- virtual void updateNetworkDisabledStatus();
- virtual void enableListedNetwork(bool);
- virtual void disableListedNetwork(bool);
- virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type,
- int sec, const QString &msg);
- virtual void showTrayStatus();
- virtual void wpsDialog();
- virtual void tabChanged(int index);
- virtual void wpsPbc();
- virtual void wpsGeneratePin();
- virtual void wpsApPinChanged(const QString &text);
- virtual void wpsApPin();
-#ifdef CONFIG_NATIVE_WINDOWS
- virtual void startService();
- virtual void stopService();
-#endif /* CONFIG_NATIVE_WINDOWS */
- virtual void addInterface();
-
-protected slots:
- virtual void languageChange();
- virtual void trayActivated(QSystemTrayIcon::ActivationReason how);
- virtual void closeEvent(QCloseEvent *event);
-
-private:
- ScanResults *scanres;
- bool networkMayHaveChanged;
- char *ctrl_iface;
- EventHistory *eh;
- struct wpa_ctrl *ctrl_conn;
- QSocketNotifier *msgNotifier;
- QTimer *timer;
- int pingsToStatusUpdate;
- WpaMsgList msgs;
- char *ctrl_iface_dir;
- struct wpa_ctrl *monitor_conn;
- UserDataRequest *udr;
- QAction *disconnectAction;
- QAction *reconnectAction;
- QAction *eventAction;
- QAction *scanAction;
- QAction *statAction;
- QAction *showAction;
- QAction *hideAction;
- QAction *quitAction;
- QMenu *tray_menu;
- QSystemTrayIcon *tray_icon;
- void createTrayIcon(bool);
- bool ackTrayIcon;
- bool startInTray;
-
- int openCtrlConnection(const char *ifname);
-
- bool wpsRunning;
-
- QString bssFromScan;
-
- void stopWpsRun(bool success);
-
-#ifdef CONFIG_NATIVE_WINDOWS
- QAction *fileStartServiceAction;
- QAction *fileStopServiceAction;
-
- bool serviceRunning();
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- QAction *addInterfaceAction;
- AddInterface *add_iface;
-
- bool connectedToService;
-
- QApplication *app;
- bool inTray;
-};
-
-#endif /* WPAGUI_H */
diff --git a/wpa_supplicant/wpa_gui-qt4/wpagui.ui b/wpa_supplicant/wpa_gui-qt4/wpagui.ui
deleted file mode 100644
index cd67ecb78301..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.ui
+++ /dev/null
@@ -1,517 +0,0 @@
-<ui version="4.0" >
- <class>WpaGui</class>
- <widget class="QMainWindow" name="WpaGui" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>345</width>
- <height>330</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>wpa_gui</string>
- </property>
- <property name="windowIcon" >
- <iconset resource="icons.qrc" >
- <normaloff>:/icons/wpa_gui.svg</normaloff>:/icons/wpa_gui.svg</iconset>
- </property>
- <widget class="QWidget" name="widget" >
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="adapterLabel" >
- <property name="text" >
- <string>Adapter:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QComboBox" name="adapterSelect" />
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="networkLabel" >
- <property name="text" >
- <string>Network:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QComboBox" name="networkSelect" />
- </item>
- <item row="2" column="0" colspan="2" >
- <widget class="QTabWidget" name="wpaguiTab" >
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="statusTab" >
- <attribute name="title" >
- <string>Current Status</string>
- </attribute>
- <layout class="QGridLayout" >
- <item row="0" column="0" colspan="5" >
- <widget class="QFrame" name="frame3" >
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="statusLabel" >
- <property name="text" >
- <string>Status:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="lastMessageLabel" >
- <property name="text" >
- <string>Last message:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="authenticationLabel" >
- <property name="text" >
- <string>Authentication:</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="encryptionLabel" >
- <property name="text" >
- <string>Encryption:</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="ssidLabel" >
- <property name="text" >
- <string>SSID:</string>
- </property>
- </widget>
- </item>
- <item row="5" column="0" >
- <widget class="QLabel" name="bssidLabel" >
- <property name="text" >
- <string>BSSID:</string>
- </property>
- </widget>
- </item>
- <item row="6" column="0" >
- <widget class="QLabel" name="ipAddressLabel" >
- <property name="text" >
- <string>IP address:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QLabel" name="textStatus" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="1" column="1" colspan="3" >
- <widget class="QLabel" name="textLastMessage" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QLabel" name="textAuthentication" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLabel" name="textEncryption" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="4" column="1" >
- <widget class="QLabel" name="textSsid" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="5" column="1" >
- <widget class="QLabel" name="textBssid" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="6" column="1" >
- <widget class="QLabel" name="textIpAddress" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="connectButton" >
- <property name="text" >
- <string>Connect</string>
- </property>
- </widget>
- </item>
- <item row="1" column="2" >
- <widget class="QPushButton" name="disconnectButton" >
- <property name="text" >
- <string>Disconnect</string>
- </property>
- </widget>
- </item>
- <item row="1" column="3" >
- <widget class="QPushButton" name="scanButton" >
- <property name="text" >
- <string>Scan</string>
- </property>
- </widget>
- </item>
- <item row="1" column="4" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="networkconfigTab" >
- <attribute name="title" >
- <string>Manage Networks</string>
- </attribute>
- <layout class="QGridLayout" >
- <item row="0" column="0" colspan="5" >
- <widget class="QListWidget" name="networkList" >
- <property name="selectionRectVisible" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item rowspan="2" row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>61</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="1" >
- <widget class="QRadioButton" name="enableRadioButton" >
- <property name="text" >
- <string>Enabled</string>
- </property>
- </widget>
- </item>
- <item row="1" column="2" >
- <widget class="QPushButton" name="editNetworkButton" >
- <property name="text" >
- <string>Edit</string>
- </property>
- </widget>
- </item>
- <item row="1" column="3" >
- <widget class="QPushButton" name="removeNetworkButton" >
- <property name="text" >
- <string>Remove</string>
- </property>
- </widget>
- </item>
- <item rowspan="2" row="1" column="4" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>61</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="1" >
- <widget class="QRadioButton" name="disableRadioButton" >
- <property name="text" >
- <string>Disabled</string>
- </property>
- </widget>
- </item>
- <item row="2" column="2" >
- <widget class="QPushButton" name="addNetworkButton" >
- <property name="text" >
- <string>Add</string>
- </property>
- </widget>
- </item>
- <item row="2" column="3" >
- <widget class="QPushButton" name="scanNetworkButton" >
- <property name="text" >
- <string>Scan</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="wpsTab" >
- <attribute name="title" >
- <string>WPS</string>
- </attribute>
- <layout class="QGridLayout" name="wpsGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_2" >
- <property name="text" >
- <string>Status:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" colspan="3" >
- <widget class="QLabel" name="wpsStatusText" >
- <property name="text" >
- <string/>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="2" >
- <widget class="QPushButton" name="wpsPbcButton" >
- <property name="text" >
- <string>PBC - push button</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0" colspan="2" >
- <widget class="QPushButton" name="wpsPinButton" >
- <property name="text" >
- <string>Generate PIN</string>
- </property>
- </widget>
- </item>
- <item row="2" column="2" >
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>PIN:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="3" >
- <widget class="QLineEdit" name="wpsPinEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="readOnly" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2" >
- <widget class="QPushButton" name="wpsApPinButton" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>Use AP PIN</string>
- </property>
- </widget>
- </item>
- <item row="3" column="2" >
- <widget class="QLabel" name="label_3" >
- <property name="text" >
- <string>AP PIN:</string>
- </property>
- </widget>
- </item>
- <item row="3" column="3" >
- <widget class="QLineEdit" name="wpsApPinEdit" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="4" column="0" colspan="4" >
- <widget class="QTextEdit" name="wpsInstructions" >
- <property name="readOnly" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QMenuBar" name="MenuBar" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>345</width>
- <height>24</height>
- </rect>
- </property>
- <widget class="QMenu" name="fileMenu" >
- <property name="title" >
- <string>&amp;File</string>
- </property>
- <addaction name="fileEventHistoryAction" />
- <addaction name="fileSaveConfigAction" />
- <addaction name="actionWPS" />
- <addaction name="separator" />
- <addaction name="fileExitAction" />
- </widget>
- <widget class="QMenu" name="networkMenu" >
- <property name="title" >
- <string>&amp;Network</string>
- </property>
- <addaction name="networkAddAction" />
- <addaction name="networkEditAction" />
- <addaction name="networkRemoveAction" />
- <addaction name="separator" />
- <addaction name="networkEnableAllAction" />
- <addaction name="networkDisableAllAction" />
- <addaction name="networkRemoveAllAction" />
- </widget>
- <widget class="QMenu" name="helpMenu" >
- <property name="title" >
- <string>&amp;Help</string>
- </property>
- <addaction name="helpContentsAction" />
- <addaction name="helpIndexAction" />
- <addaction name="separator" />
- <addaction name="helpAboutAction" />
- </widget>
- <addaction name="fileMenu" />
- <addaction name="networkMenu" />
- <addaction name="helpMenu" />
- </widget>
- <action name="fileEventHistoryAction" >
- <property name="text" >
- <string>Event &amp;History</string>
- </property>
- </action>
- <action name="fileSaveConfigAction" >
- <property name="text" >
- <string>&amp;Save Configuration</string>
- </property>
- <property name="shortcut" >
- <string>Ctrl+S</string>
- </property>
- </action>
- <action name="fileExitAction" >
- <property name="text" >
- <string>E&amp;xit</string>
- </property>
- <property name="shortcut" >
- <string>Ctrl+Q</string>
- </property>
- </action>
- <action name="networkAddAction" >
- <property name="text" >
- <string>&amp;Add</string>
- </property>
- </action>
- <action name="networkEditAction" >
- <property name="text" >
- <string>&amp;Edit</string>
- </property>
- </action>
- <action name="networkRemoveAction" >
- <property name="text" >
- <string>&amp;Remove</string>
- </property>
- </action>
- <action name="networkEnableAllAction" >
- <property name="text" >
- <string>E&amp;nable All</string>
- </property>
- </action>
- <action name="networkDisableAllAction" >
- <property name="text" >
- <string>&amp;Disable All</string>
- </property>
- </action>
- <action name="networkRemoveAllAction" >
- <property name="text" >
- <string>Re&amp;move All</string>
- </property>
- </action>
- <action name="helpContentsAction" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>&amp;Contents...</string>
- </property>
- </action>
- <action name="helpIndexAction" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>&amp;Index...</string>
- </property>
- </action>
- <action name="helpAboutAction" >
- <property name="text" >
- <string>&amp;About</string>
- </property>
- </action>
- <action name="actionWPS" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>&amp;Wi-Fi Protected Setup</string>
- </property>
- </action>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <includes>
- <include location="global" >qtimer.h</include>
- <include location="global" >qsocketnotifier.h</include>
- <include location="local" >wpamsg.h</include>
- <include location="local" >eventhistory.h</include>
- <include location="local" >scanresults.h</include>
- </includes>
- <resources>
- <include location="icons.qrc" />
- </resources>
- <connections/>
-</ui>
diff --git a/wpa_supplicant/wpa_gui-qt4/wpamsg.h b/wpa_supplicant/wpa_gui-qt4/wpamsg.h
deleted file mode 100644
index 4950b213a2e3..000000000000
--- a/wpa_supplicant/wpa_gui-qt4/wpamsg.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * wpa_gui - WpaMsg class for storing event messages
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef WPAMSG_H
-#define WPAMSG_H
-
-#include <QDateTime>
-#include <QLinkedList>
-
-class WpaMsg {
-public:
- WpaMsg(const QString &_msg, int _priority = 2)
- : msg(_msg), priority(_priority)
- {
- timestamp = QDateTime::currentDateTime();
- }
-
- QString getMsg() const { return msg; }
- int getPriority() const { return priority; }
- QDateTime getTimestamp() const { return timestamp; }
-
-private:
- QString msg;
- int priority;
- QDateTime timestamp;
-};
-
-typedef QLinkedList<WpaMsg> WpaMsgList;
-
-#endif /* WPAMSG_H */
diff --git a/wpa_supplicant/wpa_gui/.gitignore b/wpa_supplicant/wpa_gui/.gitignore
deleted file mode 100644
index 11963c84daa3..000000000000
--- a/wpa_supplicant/wpa_gui/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.moc
-.obj
-.ui
-Makefile
-wpa_gui
diff --git a/wpa_supplicant/wpa_gui/eventhistory.ui b/wpa_supplicant/wpa_gui/eventhistory.ui
deleted file mode 100644
index 3735fb70e8f9..000000000000
--- a/wpa_supplicant/wpa_gui/eventhistory.ui
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>EventHistory</class>
-<widget class="QDialog">
- <property name="name">
- <cstring>EventHistory</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>533</width>
- <height>285</height>
- </rect>
- </property>
- <property name="caption">
- <string>Event history</string>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QListView">
- <column>
- <property name="text">
- <string>Timestamp</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Message</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <property name="name">
- <cstring>eventListView</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="resizePolicy">
- <enum>Manual</enum>
- </property>
- <property name="selectionMode">
- <enum>NoSelection</enum>
- </property>
- <property name="resizeMode">
- <enum>LastColumn</enum>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout30</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <spacer>
- <property name="name">
- <cstring>spacer3</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton">
- <property name="name">
- <cstring>closeButton</cstring>
- </property>
- <property name="text">
- <string>Close</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
-</widget>
-<connections>
- <connection>
- <sender>closeButton</sender>
- <signal>clicked()</signal>
- <receiver>EventHistory</receiver>
- <slot>close()</slot>
- </connection>
-</connections>
-<includes>
- <include location="local" impldecl="in declaration">wpamsg.h</include>
- <include location="local" impldecl="in implementation">eventhistory.ui.h</include>
-</includes>
-<slots>
- <slot>addEvents( WpaMsgList msgs )</slot>
- <slot>addEvent( WpaMsg msg )</slot>
-</slots>
-<functions>
- <function access="private" specifier="non virtual">init()</function>
- <function access="private" specifier="non virtual">destroy()</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/wpa_supplicant/wpa_gui/eventhistory.ui.h b/wpa_supplicant/wpa_gui/eventhistory.ui.h
deleted file mode 100644
index cb2caab2e4e1..000000000000
--- a/wpa_supplicant/wpa_gui/eventhistory.ui.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-void EventHistory::init()
-{
-}
-
-
-void EventHistory::destroy()
-{
-}
-
-
-void EventHistory::addEvents(WpaMsgList msgs)
-{
- WpaMsgList::iterator it;
- for (it = msgs.begin(); it != msgs.end(); it++) {
- addEvent(*it);
- }
-}
-
-
-void EventHistory::addEvent(WpaMsg msg)
-{
- Q3ListViewItem *item;
- item = new Q3ListViewItem(eventListView,
- msg.getTimestamp().toString("yyyy-MM-dd hh:mm:ss.zzz"),
- msg.getMsg());
- if (item == NULL)
- return;
- eventListView->setSelected(item, false);
-}
diff --git a/wpa_supplicant/wpa_gui/main.cpp b/wpa_supplicant/wpa_gui/main.cpp
deleted file mode 100644
index a78473a8c6b1..000000000000
--- a/wpa_supplicant/wpa_gui/main.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifdef CONFIG_NATIVE_WINDOWS
-#include <winsock.h>
-#endif /* CONFIG_NATIVE_WINDOWS */
-#include <qapplication.h>
-#include "wpagui.h"
-
-int main( int argc, char ** argv )
-{
- QApplication a( argc, argv );
- WpaGui w;
- int ret;
-
-#ifdef CONFIG_NATIVE_WINDOWS
- WSADATA wsaData;
- if (WSAStartup(MAKEWORD(2, 0), &wsaData)) {
- printf("Could not find a usable WinSock.dll\n");
- return -1;
- }
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- w.show();
- a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
- ret = a.exec();
-
-#ifdef CONFIG_NATIVE_WINDOWS
- WSACleanup();
-#endif /* CONFIG_NATIVE_WINDOWS */
-
- return ret;
-}
diff --git a/wpa_supplicant/wpa_gui/networkconfig.ui b/wpa_supplicant/wpa_gui/networkconfig.ui
deleted file mode 100644
index 019ecf7e259d..000000000000
--- a/wpa_supplicant/wpa_gui/networkconfig.ui
+++ /dev/null
@@ -1,475 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>NetworkConfig</class>
-<widget class="QDialog">
- <property name="name">
- <cstring>NetworkConfig</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>380</width>
- <height>430</height>
- </rect>
- </property>
- <property name="caption">
- <string>NetworkConfig</string>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QPushButton" row="1" column="3">
- <property name="name">
- <cstring>cancelButton</cstring>
- </property>
- <property name="text">
- <string>Cancel</string>
- </property>
- </widget>
- <widget class="QFrame" row="0" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>frame9</cstring>
- </property>
- <property name="frameShape">
- <enum>StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Raised</enum>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel0</cstring>
- </property>
- <property name="text">
- <string>SSID</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="0" column="1">
- <property name="name">
- <cstring>ssidEdit</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Network name (Service Set IDentifier)</string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="text">
- <string>Network ID</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="1" column="1">
- <property name="name">
- <cstring>idstrEdit</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Network Identification String</string>
- </property>
- </widget>
- <widget class="QLabel" row="2" column="0">
- <property name="name">
- <cstring>textLabel2</cstring>
- </property>
- <property name="text">
- <string>Authentication</string>
- </property>
- </widget>
- <widget class="QComboBox" row="2" column="1">
- <item>
- <property name="text">
- <string>Plaintext or static WEP</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>IEEE 802.1X</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>WPA-Personal (PSK)</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>WPA-Enterprise (EAP)</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>WPA2-Personal (PSK)</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>WPA2-Enterprise (EAP)</string>
- </property>
- </item>
- <property name="name">
- <cstring>authSelect</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="3" column="0">
- <property name="name">
- <cstring>textLabel3</cstring>
- </property>
- <property name="text">
- <string>Encryption</string>
- </property>
- </widget>
- <widget class="QComboBox" row="3" column="1">
- <item>
- <property name="text">
- <string>None</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>WEP</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>TKIP</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>CCMP</string>
- </property>
- </item>
- <property name="name">
- <cstring>encrSelect</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="0">
- <property name="name">
- <cstring>textLabel4</cstring>
- </property>
- <property name="text">
- <string>PSK</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="4" column="1">
- <property name="name">
- <cstring>pskEdit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="echoMode">
- <enum>Password</enum>
- </property>
- <property name="toolTip" stdset="0">
- <string>WPA/WPA2 pre-shared key or passphrase</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="5" column="0">
- <property name="name">
- <cstring>textLabel5</cstring>
- </property>
- <property name="text">
- <string>EAP method</string>
- </property>
- </widget>
- <widget class="QComboBox" row="5" column="1">
- <property name="name">
- <cstring>eapSelect</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLabel" row="6" column="0">
- <property name="name">
- <cstring>textLabel6</cstring>
- </property>
- <property name="text">
- <string>Identity</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="6" column="1">
- <property name="name">
- <cstring>identityEdit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>Username/Identity for EAP methods</string>
- </property>
- </widget>
- <widget class="QLabel" row="7" column="0">
- <property name="name">
- <cstring>textLabel7</cstring>
- </property>
- <property name="text">
- <string>Password</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="7" column="1">
- <property name="name">
- <cstring>passwordEdit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="echoMode">
- <enum>Password</enum>
- </property>
- <property name="toolTip" stdset="0">
- <string>Password for EAP methods</string>
- </property>
- </widget>
- <widget class="QLabel" row="8" column="0">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="text">
- <string>CA certificate</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="8" column="1">
- <property name="name">
- <cstring>cacertEdit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QButtonGroup" row="9" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>buttonGroup1</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="title">
- <string>WEP keys</string>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QRadioButton" row="0" column="0">
- <property name="name">
- <cstring>wep0Radio</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>key 0</string>
- </property>
- </widget>
- <widget class="QRadioButton" row="1" column="0">
- <property name="name">
- <cstring>wep1Radio</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>key 1</string>
- </property>
- </widget>
- <widget class="QRadioButton" row="3" column="0">
- <property name="name">
- <cstring>wep3Radio</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>key 3</string>
- </property>
- </widget>
- <widget class="QRadioButton" row="2" column="0">
- <property name="name">
- <cstring>wep2Radio</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>key 2</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="0" column="1">
- <property name="name">
- <cstring>wep0Edit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLineEdit" row="1" column="1">
- <property name="name">
- <cstring>wep1Edit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLineEdit" row="2" column="1">
- <property name="name">
- <cstring>wep2Edit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLineEdit" row="3" column="1">
- <property name="name">
- <cstring>wep3Edit</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- </grid>
- </widget>
- </grid>
- </widget>
- <spacer row="1" column="0">
- <property name="name">
- <cstring>spacer5</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>130</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton" row="1" column="1">
- <property name="name">
- <cstring>addButton</cstring>
- </property>
- <property name="text">
- <string>Add</string>
- </property>
- </widget>
- <widget class="QPushButton" row="1" column="2">
- <property name="name">
- <cstring>removeButton</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Remove</string>
- </property>
- </widget>
- </grid>
-</widget>
-<connections>
- <connection>
- <sender>authSelect</sender>
- <signal>activated(int)</signal>
- <receiver>NetworkConfig</receiver>
- <slot>authChanged(int)</slot>
- </connection>
- <connection>
- <sender>cancelButton</sender>
- <signal>clicked()</signal>
- <receiver>NetworkConfig</receiver>
- <slot>close()</slot>
- </connection>
- <connection>
- <sender>addButton</sender>
- <signal>clicked()</signal>
- <receiver>NetworkConfig</receiver>
- <slot>addNetwork()</slot>
- </connection>
- <connection>
- <sender>encrSelect</sender>
- <signal>activated(const QString&amp;)</signal>
- <receiver>NetworkConfig</receiver>
- <slot>encrChanged(const QString&amp;)</slot>
- </connection>
- <connection>
- <sender>removeButton</sender>
- <signal>clicked()</signal>
- <receiver>NetworkConfig</receiver>
- <slot>removeNetwork()</slot>
- </connection>
-</connections>
-<tabstops>
- <tabstop>ssidEdit</tabstop>
- <tabstop>idstrEdit</tabstop>
- <tabstop>authSelect</tabstop>
- <tabstop>encrSelect</tabstop>
- <tabstop>pskEdit</tabstop>
- <tabstop>eapSelect</tabstop>
- <tabstop>identityEdit</tabstop>
- <tabstop>passwordEdit</tabstop>
- <tabstop>cacertEdit</tabstop>
- <tabstop>wep0Radio</tabstop>
- <tabstop>wep1Radio</tabstop>
- <tabstop>wep2Radio</tabstop>
- <tabstop>wep3Radio</tabstop>
- <tabstop>wep0Edit</tabstop>
- <tabstop>wep1Edit</tabstop>
- <tabstop>wep2Edit</tabstop>
- <tabstop>wep3Edit</tabstop>
- <tabstop>addButton</tabstop>
- <tabstop>removeButton</tabstop>
- <tabstop>cancelButton</tabstop>
-</tabstops>
-<includes>
- <include location="global" impldecl="in declaration">qlistview.h</include>
- <include location="global" impldecl="in implementation">qmessagebox.h</include>
- <include location="local" impldecl="in implementation">wpagui.h</include>
- <include location="local" impldecl="in implementation">networkconfig.ui.h</include>
-</includes>
-<forwards>
- <forward>class WpaGui;</forward>
-</forwards>
-<variables>
- <variable access="private">WpaGui *wpagui;</variable>
- <variable access="private">int edit_network_id;</variable>
- <variable access="private">bool new_network;</variable>
-</variables>
-<slots>
- <slot>authChanged( int sel )</slot>
- <slot>addNetwork()</slot>
- <slot>encrChanged( const QString &amp; sel )</slot>
- <slot>writeWepKey( int network_id, QLineEdit * edit, int id )</slot>
- <slot>removeNetwork()</slot>
-</slots>
-<functions>
- <function access="private" specifier="non virtual">init()</function>
- <function>paramsFromScanResults( QListViewItem * sel )</function>
- <function>setWpaGui( WpaGui * _wpagui )</function>
- <function returnType="int">setNetworkParam( int id, const char * field, const char * value, bool quote )</function>
- <function access="private">wepEnabled( bool enabled )</function>
- <function>paramsFromConfig( int network_id )</function>
- <function>newNetwork()</function>
- <function access="private">getEapCapa()</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/wpa_supplicant/wpa_gui/networkconfig.ui.h b/wpa_supplicant/wpa_gui/networkconfig.ui.h
deleted file mode 100644
index 501d5d26556a..000000000000
--- a/wpa_supplicant/wpa_gui/networkconfig.ui.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-#include <stdlib.h>
-
-enum {
- AUTH_NONE = 0,
- AUTH_IEEE8021X = 1,
- AUTH_WPA_PSK = 2,
- AUTH_WPA_EAP = 3,
- AUTH_WPA2_PSK = 4,
- AUTH_WPA2_EAP = 5
-};
-
-#define WPA_GUI_KEY_DATA "[key is configured]"
-
-void NetworkConfig::init()
-{
- wpagui = NULL;
- new_network = false;
-}
-
-void NetworkConfig::paramsFromScanResults(Q3ListViewItem *sel)
-{
- new_network = true;
-
- /* SSID BSSID frequency signal flags */
- setCaption(sel->text(0));
- ssidEdit->setText(sel->text(0));
-
- QString flags = sel->text(4);
- int auth, encr = 0;
- if (flags.find("[WPA2-EAP") >= 0)
- auth = AUTH_WPA2_EAP;
- else if (flags.find("[WPA-EAP") >= 0)
- auth = AUTH_WPA_EAP;
- else if (flags.find("[WPA2-PSK") >= 0)
- auth = AUTH_WPA2_PSK;
- else if (flags.find("[WPA-PSK") >= 0)
- auth = AUTH_WPA_PSK;
- else
- auth = AUTH_NONE;
-
- if (flags.find("-CCMP") >= 0)
- encr = 1;
- else if (flags.find("-TKIP") >= 0)
- encr = 0;
- else if (flags.find("WEP") >= 0)
- encr = 1;
- else
- encr = 0;
-
- authSelect->setCurrentItem(auth);
- authChanged(auth);
- encrSelect->setCurrentItem(encr);
-
- getEapCapa();
-}
-
-
-void NetworkConfig::authChanged(int sel)
-{
- pskEdit->setEnabled(sel == AUTH_WPA_PSK || sel == AUTH_WPA2_PSK);
- bool eap = sel == AUTH_IEEE8021X || sel == AUTH_WPA_EAP ||
- sel == AUTH_WPA2_EAP;
- eapSelect->setEnabled(eap);
- identityEdit->setEnabled(eap);
- passwordEdit->setEnabled(eap);
- cacertEdit->setEnabled(eap);
-
- while (encrSelect->count())
- encrSelect->removeItem(0);
-
- if (sel == AUTH_NONE || sel == AUTH_IEEE8021X) {
- encrSelect->insertItem("None");
- encrSelect->insertItem("WEP");
- encrSelect->setCurrentItem(sel == AUTH_NONE ? 0 : 1);
- } else {
- encrSelect->insertItem("TKIP");
- encrSelect->insertItem("CCMP");
- encrSelect->setCurrentItem((sel == AUTH_WPA2_PSK ||
- sel == AUTH_WPA2_EAP) ? 1 : 0);
- }
-
- wepEnabled(sel == AUTH_IEEE8021X);
-}
-
-
-void NetworkConfig::addNetwork()
-{
- char reply[10], cmd[256];
- size_t reply_len;
- int id;
- int psklen = pskEdit->text().length();
- int auth = authSelect->currentItem();
-
- if (auth == AUTH_WPA_PSK || auth == AUTH_WPA2_PSK) {
- if (psklen < 8 || psklen > 64) {
- QMessageBox::warning(this, "wpa_gui", "WPA-PSK requires a passphrase "
- "of 8 to 63 characters\n"
- "or 64 hex digit PSK");
- return;
- }
- }
-
- if (wpagui == NULL)
- return;
-
- memset(reply, 0, sizeof(reply));
- reply_len = sizeof(reply) - 1;
-
- if (new_network) {
- wpagui->ctrlRequest("ADD_NETWORK", reply, &reply_len);
- if (reply[0] == 'F') {
- QMessageBox::warning(this, "wpa_gui", "Failed to add network to wpa_supplicant\n"
- "configuration.");
- return;
- }
- id = atoi(reply);
- } else {
- id = edit_network_id;
- }
-
- setNetworkParam(id, "ssid", ssidEdit->text().ascii(), true);
-
- if (idstrEdit->isEnabled())
- setNetworkParam(id, "id_str", idstrEdit->text().ascii(), true);
-
- const char *key_mgmt = NULL, *proto = NULL, *pairwise = NULL;
- switch (auth) {
- case AUTH_NONE:
- key_mgmt = "NONE";
- break;
- case AUTH_IEEE8021X:
- key_mgmt = "IEEE8021X";
- break;
- case AUTH_WPA_PSK:
- key_mgmt = "WPA-PSK";
- proto = "WPA";
- break;
- case AUTH_WPA_EAP:
- key_mgmt = "WPA-EAP";
- proto = "WPA";
- break;
- case AUTH_WPA2_PSK:
- key_mgmt = "WPA-PSK";
- proto = "WPA2";
- break;
- case AUTH_WPA2_EAP:
- key_mgmt = "WPA-EAP";
- proto = "WPA2";
- break;
- }
-
- if (auth == AUTH_WPA_PSK || auth == AUTH_WPA_EAP ||
- auth == AUTH_WPA2_PSK || auth == AUTH_WPA2_EAP) {
- int encr = encrSelect->currentItem();
- if (encr == 0)
- pairwise = "TKIP";
- else
- pairwise = "CCMP";
- }
-
- if (proto)
- setNetworkParam(id, "proto", proto, false);
- if (key_mgmt)
- setNetworkParam(id, "key_mgmt", key_mgmt, false);
- if (pairwise) {
- setNetworkParam(id, "pairwise", pairwise, false);
- setNetworkParam(id, "group", "TKIP CCMP WEP104 WEP40", false);
- }
- if (pskEdit->isEnabled() &&
- strcmp(pskEdit->text().ascii(), WPA_GUI_KEY_DATA) != 0)
- setNetworkParam(id, "psk", pskEdit->text().ascii(), psklen != 64);
- if (eapSelect->isEnabled())
- setNetworkParam(id, "eap", eapSelect->currentText().ascii(), false);
- if (identityEdit->isEnabled())
- setNetworkParam(id, "identity", identityEdit->text().ascii(), true);
- if (passwordEdit->isEnabled() &&
- strcmp(passwordEdit->text().ascii(), WPA_GUI_KEY_DATA) != 0)
- setNetworkParam(id, "password", passwordEdit->text().ascii(), true);
- if (cacertEdit->isEnabled())
- setNetworkParam(id, "ca_cert", cacertEdit->text().ascii(), true);
- writeWepKey(id, wep0Edit, 0);
- writeWepKey(id, wep1Edit, 1);
- writeWepKey(id, wep2Edit, 2);
- writeWepKey(id, wep3Edit, 3);
-
- if (wep0Radio->isEnabled() && wep0Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "0", false);
- else if (wep1Radio->isEnabled() && wep1Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "1", false);
- else if (wep2Radio->isEnabled() && wep2Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "2", false);
- else if (wep3Radio->isEnabled() && wep3Radio->isChecked())
- setNetworkParam(id, "wep_tx_keyidx", "3", false);
-
- snprintf(cmd, sizeof(cmd), "ENABLE_NETWORK %d", id);
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (strncmp(reply, "OK", 2) != 0) {
- QMessageBox::warning(this, "wpa_gui", "Failed to enable network in wpa_supplicant\n"
- "configuration.");
- /* Network was added, so continue anyway */
- }
- wpagui->triggerUpdate();
- wpagui->ctrlRequest("SAVE_CONFIG", reply, &reply_len);
-
- close();
-}
-
-
-void NetworkConfig::setWpaGui( WpaGui *_wpagui )
-{
- wpagui = _wpagui;
-}
-
-
-int NetworkConfig::setNetworkParam(int id, const char *field, const char *value, bool quote)
-{
- char reply[10], cmd[256];
- size_t reply_len;
- snprintf(cmd, sizeof(cmd), "SET_NETWORK %d %s %s%s%s",
- id, field, quote ? "\"" : "", value, quote ? "\"" : "");
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- return strncmp(reply, "OK", 2) == 0 ? 0 : -1;
-}
-
-
-void NetworkConfig::encrChanged( const QString &sel )
-{
- wepEnabled(sel.find("WEP") == 0);
-}
-
-
-void NetworkConfig::wepEnabled( bool enabled )
-{
- wep0Edit->setEnabled(enabled);
- wep1Edit->setEnabled(enabled);
- wep2Edit->setEnabled(enabled);
- wep3Edit->setEnabled(enabled);
- wep0Radio->setEnabled(enabled);
- wep1Radio->setEnabled(enabled);
- wep2Radio->setEnabled(enabled);
- wep3Radio->setEnabled(enabled);
-}
-
-
-void NetworkConfig::writeWepKey( int network_id, QLineEdit *edit, int id )
-{
- char buf[10];
- bool hex;
- const char *txt, *pos;
- size_t len;
-
- if (!edit->isEnabled() || edit->text().isEmpty())
- return;
-
- /*
- * Assume hex key if only hex characters are present and length matches
- * with 40, 104, or 128-bit key
- */
- txt = edit->text().ascii();
- if (strcmp(txt, WPA_GUI_KEY_DATA) == 0)
- return;
- len = strlen(txt);
- if (len == 0)
- return;
- pos = txt;
- hex = true;
- while (*pos) {
- if (!((*pos >= '0' && *pos <= '9') || (*pos >= 'a' && *pos <= 'f') ||
- (*pos >= 'A' && *pos <= 'F'))) {
- hex = false;
- break;
- }
- pos++;
- }
- if (hex && len != 10 && len != 26 && len != 32)
- hex = false;
- snprintf(buf, sizeof(buf), "wep_key%d", id);
- setNetworkParam(network_id, buf, txt, !hex);
-}
-
-
-static int key_value_isset(const char *reply, size_t reply_len)
-{
- return reply_len > 0 && (reply_len < 4 || memcmp(reply, "FAIL", 4) != 0);
-}
-
-
-void NetworkConfig::paramsFromConfig( int network_id )
-{
- int i, res;
-
- edit_network_id = network_id;
- getEapCapa();
-
- char reply[1024], cmd[256], *pos;
- size_t reply_len;
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d ssid", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 2 &&
- reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- ssidEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d id_str", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 2 &&
- reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- idstrEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d proto", network_id);
- reply_len = sizeof(reply) - 1;
- int wpa = 0;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "RSN") || strstr(reply, "WPA2"))
- wpa = 2;
- else if (strstr(reply, "WPA"))
- wpa = 1;
- }
-
- int auth = AUTH_NONE, encr = 0;
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d key_mgmt", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "WPA-EAP"))
- auth = wpa & 2 ? AUTH_WPA2_EAP : AUTH_WPA_EAP;
- else if (strstr(reply, "WPA-PSK"))
- auth = wpa & 2 ? AUTH_WPA2_PSK : AUTH_WPA_PSK;
- else if (strstr(reply, "IEEE8021X")) {
- auth = AUTH_IEEE8021X;
- encr = 1;
- }
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d pairwise", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0) {
- reply[reply_len] = '\0';
- if (strstr(reply, "CCMP") && auth != AUTH_NONE)
- encr = 1;
- else if (strstr(reply, "TKIP"))
- encr = 0;
- else if (strstr(reply, "WEP"))
- encr = 1;
- else
- encr = 0;
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d psk", network_id);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- pskEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- pskEdit->setText(WPA_GUI_KEY_DATA);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d identity", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 2 &&
- reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- identityEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d password", network_id);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 &&
- reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- passwordEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- passwordEdit->setText(WPA_GUI_KEY_DATA);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d ca_cert", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 2 &&
- reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- cacertEdit->setText(reply + 1);
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d eap", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 1) {
- reply[reply_len] = '\0';
- for (i = 0; i < eapSelect->count(); i++) {
- if (eapSelect->text(i).compare(reply) == 0) {
- eapSelect->setCurrentItem(i);
- break;
- }
- }
- }
-
- for (i = 0; i < 4; i++) {
- QLineEdit *wepEdit;
- switch (i) {
- default:
- case 0:
- wepEdit = wep0Edit;
- break;
- case 1:
- wepEdit = wep1Edit;
- break;
- case 2:
- wepEdit = wep2Edit;
- break;
- case 3:
- wepEdit = wep3Edit;
- break;
- }
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d wep_key%d", network_id, i);
- reply_len = sizeof(reply) - 1;
- res = wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (res >= 0 && reply_len >= 2 && reply[0] == '"') {
- reply[reply_len] = '\0';
- pos = strchr(reply + 1, '"');
- if (pos)
- *pos = '\0';
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- encr = 1;
-
- wepEdit->setText(reply + 1);
- } else if (res >= 0 && key_value_isset(reply, reply_len)) {
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- encr = 1;
- wepEdit->setText(WPA_GUI_KEY_DATA);
- }
- }
-
- snprintf(cmd, sizeof(cmd), "GET_NETWORK %d wep_tx_keyidx", network_id);
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest(cmd, reply, &reply_len) >= 0 && reply_len >= 1) {
- reply[reply_len] = '\0';
- switch (atoi(reply)) {
- case 0:
- wep0Radio->setChecked(true);
- break;
- case 1:
- wep1Radio->setChecked(true);
- break;
- case 2:
- wep2Radio->setChecked(true);
- break;
- case 3:
- wep3Radio->setChecked(true);
- break;
- }
- }
-
- authSelect->setCurrentItem(auth);
- authChanged(auth);
- encrSelect->setCurrentItem(encr);
- if (auth == AUTH_NONE || auth == AUTH_IEEE8021X)
- wepEnabled(encr == 1);
-
- removeButton->setEnabled(true);
- addButton->setText("Save");
-}
-
-
-void NetworkConfig::removeNetwork()
-{
- char reply[10], cmd[256];
- size_t reply_len;
-
- if (QMessageBox::information(this, "wpa_gui",
- "This will permanently remove the network\n"
- "from the configuration. Do you really want\n"
- "to remove this network?", "Yes", "No") != 0)
- return;
-
- snprintf(cmd, sizeof(cmd), "REMOVE_NETWORK %d", edit_network_id);
- reply_len = sizeof(reply);
- wpagui->ctrlRequest(cmd, reply, &reply_len);
- if (strncmp(reply, "OK", 2) != 0) {
- QMessageBox::warning(this, "wpa_gui",
- "Failed to remove network from wpa_supplicant\n"
- "configuration.");
- } else {
- wpagui->triggerUpdate();
- wpagui->ctrlRequest("SAVE_CONFIG", reply, &reply_len);
- }
-
- close();
-}
-
-
-void NetworkConfig::newNetwork()
-{
- new_network = true;
- getEapCapa();
-}
-
-
-void NetworkConfig::getEapCapa()
-{
- char reply[256];
- size_t reply_len;
-
- if (wpagui == NULL)
- return;
-
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest("GET_CAPABILITY eap", reply, &reply_len) < 0)
- return;
- reply[reply_len] = '\0';
-
- QString res(reply);
- QStringList types = QStringList::split(QChar(' '), res);
- eapSelect->insertStringList(types);
-}
diff --git a/wpa_supplicant/wpa_gui/scanresults.ui b/wpa_supplicant/wpa_gui/scanresults.ui
deleted file mode 100644
index 66c8b4b76f32..000000000000
--- a/wpa_supplicant/wpa_gui/scanresults.ui
+++ /dev/null
@@ -1,179 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>ScanResults</class>
-<widget class="QDialog">
- <property name="name">
- <cstring>ScanResults</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>452</width>
- <height>225</height>
- </rect>
- </property>
- <property name="caption">
- <string>Scan results</string>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QListView">
- <column>
- <property name="text">
- <string>SSID</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>BSSID</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>frequency</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>signal</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>flags</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <property name="name">
- <cstring>scanResultsView</cstring>
- </property>
- <property name="frameShape">
- <enum>StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Sunken</enum>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout24</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <spacer>
- <property name="name">
- <cstring>spacer6</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>50</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton">
- <property name="name">
- <cstring>scanButton</cstring>
- </property>
- <property name="text">
- <string>Scan</string>
- </property>
- </widget>
- <widget class="QPushButton">
- <property name="name">
- <cstring>closeButton</cstring>
- </property>
- <property name="text">
- <string>Close</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
-</widget>
-<connections>
- <connection>
- <sender>closeButton</sender>
- <signal>clicked()</signal>
- <receiver>ScanResults</receiver>
- <slot>close()</slot>
- </connection>
- <connection>
- <sender>scanButton</sender>
- <signal>clicked()</signal>
- <receiver>ScanResults</receiver>
- <slot>scanRequest()</slot>
- </connection>
- <connection>
- <sender>scanResultsView</sender>
- <signal>doubleClicked(QListViewItem*)</signal>
- <receiver>ScanResults</receiver>
- <slot>bssSelected(QListViewItem*)</slot>
- </connection>
-</connections>
-<includes>
- <include location="local" impldecl="in implementation">wpa_ctrl.h</include>
- <include location="local" impldecl="in implementation">wpagui.h</include>
- <include location="local" impldecl="in implementation">networkconfig.h</include>
- <include location="local" impldecl="in implementation">scanresults.ui.h</include>
-</includes>
-<forwards>
- <forward>class WpaGui;</forward>
-</forwards>
-<variables>
- <variable access="private">WpaGui *wpagui;</variable>
- <variable access="private">QTimer *timer;</variable>
-</variables>
-<slots>
- <slot>setWpaGui( WpaGui * _wpagui )</slot>
- <slot>updateResults()</slot>
- <slot>scanRequest()</slot>
- <slot>getResults()</slot>
- <slot>bssSelected( QListViewItem * sel )</slot>
-</slots>
-<functions>
- <function access="private" specifier="non virtual">init()</function>
- <function access="private" specifier="non virtual">destroy()</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/wpa_supplicant/wpa_gui/scanresults.ui.h b/wpa_supplicant/wpa_gui/scanresults.ui.h
deleted file mode 100644
index 530d2e6a495c..000000000000
--- a/wpa_supplicant/wpa_gui/scanresults.ui.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-void ScanResults::init()
-{
- wpagui = NULL;
-}
-
-
-void ScanResults::destroy()
-{
- delete timer;
-}
-
-
-void ScanResults::setWpaGui(WpaGui *_wpagui)
-{
- wpagui = _wpagui;
- updateResults();
-
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), SLOT(getResults()));
- timer->start(10000, FALSE);
-}
-
-
-void ScanResults::updateResults()
-{
- char reply[8192];
- size_t reply_len;
-
- if (wpagui == NULL)
- return;
-
- reply_len = sizeof(reply) - 1;
- if (wpagui->ctrlRequest("SCAN_RESULTS", reply, &reply_len) < 0)
- return;
- reply[reply_len] = '\0';
-
- scanResultsView->clear();
-
- QString res(reply);
- QStringList lines = QStringList::split(QChar('\n'), res);
- bool first = true;
- for (QStringList::Iterator it = lines.begin(); it != lines.end(); it++) {
- if (first) {
- first = false;
- continue;
- }
-
- QStringList cols = QStringList::split(QChar('\t'), *it, true);
- QString ssid, bssid, freq, signal, flags;
- bssid = cols.count() > 0 ? cols[0] : "";
- freq = cols.count() > 1 ? cols[1] : "";
- signal = cols.count() > 2 ? cols[2] : "";
- flags = cols.count() > 3 ? cols[3] : "";
- ssid = cols.count() > 4 ? cols[4] : "";
- new Q3ListViewItem(scanResultsView, ssid, bssid, freq, signal, flags);
- }
-}
-
-
-void ScanResults::scanRequest()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (wpagui == NULL)
- return;
-
- wpagui->ctrlRequest("SCAN", reply, &reply_len);
-}
-
-
-void ScanResults::getResults()
-{
- updateResults();
-}
-
-
-
-
-void ScanResults::bssSelected( Q3ListViewItem * sel )
-{
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(wpagui);
- nc->paramsFromScanResults(sel);
- nc->show();
- nc->exec();
-}
diff --git a/wpa_supplicant/wpa_gui/setup-mingw-cross-compiling b/wpa_supplicant/wpa_gui/setup-mingw-cross-compiling
deleted file mode 100755
index e173b0013781..000000000000
--- a/wpa_supplicant/wpa_gui/setup-mingw-cross-compiling
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-# qmake seems to be forcing include and lib paths from the original build
-# and I have no idea how to change these. For now, just override the
-# directories in the Makefile.Release file after qmake run.
-
-qmake -spec /q/jm/qt4-win/4.0.0/mkspecs/win32-g++ wpa_gui.pro -o Makefile
-cat Makefile.Release |
- sed s%qt4/lib%qt4-win/4.0.0/lib%g |
- sed s%qt4/include%qt4-win/4.0.0/include%g > tmp.Makefile.Release &&
-mv -f tmp.Makefile.Release Makefile.Release
diff --git a/wpa_supplicant/wpa_gui/userdatarequest.ui b/wpa_supplicant/wpa_gui/userdatarequest.ui
deleted file mode 100644
index c3d545fa620a..000000000000
--- a/wpa_supplicant/wpa_gui/userdatarequest.ui
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>UserDataRequest</class>
-<widget class="QDialog">
- <property name="name">
- <cstring>UserDataRequest</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>216</width>
- <height>103</height>
- </rect>
- </property>
- <property name="caption">
- <string>Authentication credentials required</string>
- </property>
- <property name="sizeGripEnabled">
- <bool>true</bool>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>queryInfo</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout28</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>queryField</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>queryEdit</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="echoMode">
- <enum>Password</enum>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout27</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <spacer>
- <property name="name">
- <cstring>spacer4</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton">
- <property name="name">
- <cstring>buttonOk</cstring>
- </property>
- <property name="text">
- <string>&amp;OK</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QPushButton">
- <property name="name">
- <cstring>buttonCancel</cstring>
- </property>
- <property name="text">
- <string>&amp;Cancel</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
-</widget>
-<connections>
- <connection>
- <sender>buttonOk</sender>
- <signal>clicked()</signal>
- <receiver>UserDataRequest</receiver>
- <slot>sendReply()</slot>
- </connection>
- <connection>
- <sender>buttonCancel</sender>
- <signal>clicked()</signal>
- <receiver>UserDataRequest</receiver>
- <slot>reject()</slot>
- </connection>
- <connection>
- <sender>queryEdit</sender>
- <signal>returnPressed()</signal>
- <receiver>UserDataRequest</receiver>
- <slot>sendReply()</slot>
- </connection>
-</connections>
-<includes>
- <include location="local" impldecl="in implementation">wpa_ctrl.h</include>
- <include location="local" impldecl="in implementation">wpagui.h</include>
- <include location="local" impldecl="in implementation">userdatarequest.ui.h</include>
-</includes>
-<forwards>
- <forward>class WpaGui;</forward>
-</forwards>
-<variables>
- <variable access="private">WpaGui *wpagui;</variable>
- <variable access="private">int networkid;</variable>
- <variable access="private">QString field;</variable>
-</variables>
-<slots>
- <slot>sendReply()</slot>
-</slots>
-<functions>
- <function specifier="non virtual" returnType="int">setParams( WpaGui * _wpagui, const char * reqMsg )</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/wpa_supplicant/wpa_gui/userdatarequest.ui.h b/wpa_supplicant/wpa_gui/userdatarequest.ui.h
deleted file mode 100644
index 66d4478d23e2..000000000000
--- a/wpa_supplicant/wpa_gui/userdatarequest.ui.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-#include <stdlib.h>
-
-int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
-{
- char *tmp, *pos, *pos2;
- wpagui = _wpagui;
- tmp = strdup(reqMsg);
- if (tmp == NULL)
- return -1;
- pos = strchr(tmp, '-');
- if (pos == NULL) {
- free(tmp);
- return -1;
- }
- *pos++ = '\0';
- field = tmp;
- pos2 = strchr(pos, ':');
- if (pos2 == NULL) {
- free(tmp);
- return -1;
- }
- *pos2++ = '\0';
-
- networkid = atoi(pos);
- queryInfo->setText(pos2);
- if (strcmp(tmp, "PASSWORD") == 0) {
- queryField->setText("Password: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else if (strcmp(tmp, "NEW_PASSWORD") == 0) {
- queryField->setText("New password: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else if (strcmp(tmp, "IDENTITY") == 0)
- queryField->setText("Identity: ");
- else if (strcmp(tmp, "PASSPHRASE") == 0) {
- queryField->setText("Private key passphrase: ");
- queryEdit->setEchoMode(QLineEdit::Password);
- } else
- queryField->setText(field + ":");
- free(tmp);
-
- return 0;
-}
-
-
-void UserDataRequest::sendReply()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- if (wpagui == NULL) {
- reject();
- return;
- }
-
- QString cmd = QString(WPA_CTRL_RSP) + field + '-' +
- QString::number(networkid) + ':' +
- queryEdit->text();
- wpagui->ctrlRequest(cmd.ascii(), reply, &reply_len);
- accept();
-}
diff --git a/wpa_supplicant/wpa_gui/wpa_gui.pro b/wpa_supplicant/wpa_gui/wpa_gui.pro
deleted file mode 100644
index 6363db92287c..000000000000
--- a/wpa_supplicant/wpa_gui/wpa_gui.pro
+++ /dev/null
@@ -1,50 +0,0 @@
-TEMPLATE = app
-LANGUAGE = C++
-
-CONFIG += qt warn_on release
-
-DEFINES += CONFIG_CTRL_IFACE
-
-win32 {
- LIBS += -lws2_32 -static
- DEFINES += CONFIG_NATIVE_WINDOWS CONFIG_CTRL_IFACE_NAMED_PIPE
- SOURCES += ../../src/utils/os_win32.c
-} else:win32-g++ {
- # cross compilation to win32
- LIBS += -lws2_32 -static
- DEFINES += CONFIG_NATIVE_WINDOWS CONFIG_CTRL_IFACE_NAMED_PIPE
- SOURCES += ../../src/utils/os_win32.c
-} else {
- DEFINES += CONFIG_CTRL_IFACE_UNIX
- SOURCES += ../../src/utils/os_unix.c
-}
-
-INCLUDEPATH += . .. ../../src/utils ../../src/common
-
-HEADERS += wpamsg.h
-
-SOURCES += main.cpp \
- ../../src/common/wpa_ctrl.c
-
-FORMS = wpagui.ui \
- eventhistory.ui \
- scanresults.ui \
- userdatarequest.ui \
- networkconfig.ui
-
-
-unix {
- UI_DIR = .ui
- MOC_DIR = .moc
- OBJECTS_DIR = .obj
-}
-
-qtver = $$[QT_VERSION]
-isEmpty( qtver ) {
- message(Compiling for Qt 3.x)
- DEFINES += Q3ListViewItem=QListViewItem
-} else {
- message(Compiling for Qt $$qtver)
- QT += qt3support
- CONFIG += uic3
-}
diff --git a/wpa_supplicant/wpa_gui/wpagui.ui b/wpa_supplicant/wpa_gui/wpagui.ui
deleted file mode 100644
index 01666a363479..000000000000
--- a/wpa_supplicant/wpa_gui/wpagui.ui
+++ /dev/null
@@ -1,471 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>WpaGui</class>
-<widget class="QMainWindow">
- <property name="name">
- <cstring>WpaGui</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>279</width>
- <height>308</height>
- </rect>
- </property>
- <property name="caption">
- <string>wpa_gui</string>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel16</cstring>
- </property>
- <property name="text">
- <string>Adapter:</string>
- </property>
- </widget>
- <widget class="QComboBox" row="0" column="2" rowspan="1" colspan="2">
- <property name="name">
- <cstring>adapterSelect</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel8</cstring>
- </property>
- <property name="text">
- <string>Network:</string>
- </property>
- </widget>
- <widget class="QComboBox" row="1" column="2" rowspan="1" colspan="2">
- <property name="name">
- <cstring>networkSelect</cstring>
- </property>
- </widget>
- <widget class="QFrame" row="2" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>frame3</cstring>
- </property>
- <property name="frameShape">
- <enum>StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Raised</enum>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="text">
- <string>Status:</string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0">
- <property name="name">
- <cstring>textLabel2</cstring>
- </property>
- <property name="text">
- <string>Last message:</string>
- </property>
- </widget>
- <widget class="QLabel" row="2" column="0">
- <property name="name">
- <cstring>textLabel3</cstring>
- </property>
- <property name="text">
- <string>Authentication:</string>
- </property>
- </widget>
- <widget class="QLabel" row="3" column="0">
- <property name="name">
- <cstring>textLabel4</cstring>
- </property>
- <property name="text">
- <string>Encryption:</string>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="0">
- <property name="name">
- <cstring>textLabel5</cstring>
- </property>
- <property name="text">
- <string>SSID:</string>
- </property>
- </widget>
- <widget class="QLabel" row="5" column="0">
- <property name="name">
- <cstring>textLabel6</cstring>
- </property>
- <property name="text">
- <string>BSSID:</string>
- </property>
- </widget>
- <widget class="QLabel" row="6" column="0">
- <property name="name">
- <cstring>textLabel7</cstring>
- </property>
- <property name="text">
- <string>IP address:</string>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="1">
- <property name="name">
- <cstring>textStatus</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="1" rowspan="1" colspan="3">
- <property name="name">
- <cstring>textLastMessage</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="2" column="1">
- <property name="name">
- <cstring>textAuthentication</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="3" column="1">
- <property name="name">
- <cstring>textEncryption</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="1">
- <property name="name">
- <cstring>textSsid</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="5" column="1">
- <property name="name">
- <cstring>textBssid</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="6" column="1">
- <property name="name">
- <cstring>textIpAddress</cstring>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- </grid>
- </widget>
- <spacer row="3" column="0">
- <property name="name">
- <cstring>spacer7</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>16</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
- <widget class="QPushButton" row="3" column="1">
- <property name="name">
- <cstring>connectButton</cstring>
- </property>
- <property name="text">
- <string>Connect</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="2">
- <property name="name">
- <cstring>disconnectButton</cstring>
- </property>
- <property name="text">
- <string>Disconnect</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="3">
- <property name="name">
- <cstring>scanButton</cstring>
- </property>
- <property name="text">
- <string>Scan</string>
- </property>
- </widget>
- </grid>
-</widget>
-<menubar>
- <property name="name">
- <cstring>MenuBar</cstring>
- </property>
- <item text="&amp;File" name="fileMenu">
- <separator/>
- <action name="fileEventHistoryAction"/>
- <action name="fileAdd_NetworkAction"/>
- <action name="fileEdit_networkAction"/>
- <separator/>
- <action name="fileExitAction"/>
- </item>
- <item text="&amp;Help" name="helpMenu">
- <action name="helpContentsAction"/>
- <action name="helpIndexAction"/>
- <separator/>
- <action name="helpAboutAction"/>
- </item>
-</menubar>
-<toolbars>
-</toolbars>
-<actions>
- <action>
- <property name="name">
- <cstring>fileExitAction</cstring>
- </property>
- <property name="text">
- <string>Exit</string>
- </property>
- <property name="menuText">
- <string>E&amp;xit</string>
- </property>
- <property name="accel">
- <string>Ctrl+Q</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>helpContentsAction</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Contents</string>
- </property>
- <property name="menuText">
- <string>&amp;Contents...</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>helpIndexAction</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Index</string>
- </property>
- <property name="menuText">
- <string>&amp;Index...</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>helpAboutAction</cstring>
- </property>
- <property name="text">
- <string>About</string>
- </property>
- <property name="menuText">
- <string>&amp;About</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileEventHistoryAction</cstring>
- </property>
- <property name="text">
- <string>Event History</string>
- </property>
- <property name="menuText">
- <string>Event &amp;History</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileAdd_NetworkAction</cstring>
- </property>
- <property name="text">
- <string>Add Network</string>
- </property>
- <property name="menuText">
- <string>&amp;Add Network</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileEdit_networkAction</cstring>
- </property>
- <property name="text">
- <string>Edit Network</string>
- </property>
- <property name="menuText">
- <string>&amp;Edit Network</string>
- </property>
- </action>
-</actions>
-<connections>
- <connection>
- <sender>helpIndexAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>helpIndex()</slot>
- </connection>
- <connection>
- <sender>helpContentsAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>helpContents()</slot>
- </connection>
- <connection>
- <sender>helpAboutAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>helpAbout()</slot>
- </connection>
- <connection>
- <sender>fileExitAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>close()</slot>
- </connection>
- <connection>
- <sender>disconnectButton</sender>
- <signal>clicked()</signal>
- <receiver>WpaGui</receiver>
- <slot>disconnect()</slot>
- </connection>
- <connection>
- <sender>scanButton</sender>
- <signal>clicked()</signal>
- <receiver>WpaGui</receiver>
- <slot>scan()</slot>
- </connection>
- <connection>
- <sender>connectButton</sender>
- <signal>clicked()</signal>
- <receiver>WpaGui</receiver>
- <slot>connectB()</slot>
- </connection>
- <connection>
- <sender>fileEventHistoryAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>eventHistory()</slot>
- </connection>
- <connection>
- <sender>networkSelect</sender>
- <signal>activated(const QString&amp;)</signal>
- <receiver>WpaGui</receiver>
- <slot>selectNetwork(const QString&amp;)</slot>
- </connection>
- <connection>
- <sender>fileEdit_networkAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>editNetwork()</slot>
- </connection>
- <connection>
- <sender>fileAdd_NetworkAction</sender>
- <signal>activated()</signal>
- <receiver>WpaGui</receiver>
- <slot>addNetwork()</slot>
- </connection>
- <connection>
- <sender>adapterSelect</sender>
- <signal>activated(const QString&amp;)</signal>
- <receiver>WpaGui</receiver>
- <slot>selectAdapter(const QString&amp;)</slot>
- </connection>
-</connections>
-<includes>
- <include location="global" impldecl="in declaration">qtimer.h</include>
- <include location="global" impldecl="in declaration">qsocketnotifier.h</include>
- <include location="local" impldecl="in declaration">wpamsg.h</include>
- <include location="local" impldecl="in declaration">eventhistory.h</include>
- <include location="local" impldecl="in declaration">scanresults.h</include>
- <include location="local" impldecl="in implementation">wpa_ctrl.h</include>
- <include location="global" impldecl="in implementation">dirent.h</include>
- <include location="global" impldecl="in implementation">qmessagebox.h</include>
- <include location="global" impldecl="in implementation">qapplication.h</include>
- <include location="local" impldecl="in implementation">userdatarequest.h</include>
- <include location="local" impldecl="in implementation">networkconfig.h</include>
- <include location="local" impldecl="in implementation">wpagui.ui.h</include>
-</includes>
-<forwards>
- <forward>class UserDataRequest;</forward>
-</forwards>
-<variables>
- <variable access="private">ScanResults *scanres;</variable>
- <variable access="private">bool networkMayHaveChanged;</variable>
- <variable access="private">char *ctrl_iface;</variable>
- <variable access="private">EventHistory *eh;</variable>
- <variable access="private">struct wpa_ctrl *ctrl_conn;</variable>
- <variable access="private">QSocketNotifier *msgNotifier;</variable>
- <variable access="private">QTimer *timer;</variable>
- <variable access="private">int pingsToStatusUpdate;</variable>
- <variable access="private">WpaMsgList msgs;</variable>
- <variable access="private">char *ctrl_iface_dir;</variable>
- <variable access="private">struct wpa_ctrl *monitor_conn;</variable>
- <variable access="private">UserDataRequest *udr;</variable>
-</variables>
-<slots>
- <slot>parse_argv()</slot>
- <slot>updateStatus()</slot>
- <slot>updateNetworks()</slot>
- <slot>helpIndex()</slot>
- <slot>helpContents()</slot>
- <slot>helpAbout()</slot>
- <slot>disconnect()</slot>
- <slot>scan()</slot>
- <slot>eventHistory()</slot>
- <slot>ping()</slot>
- <slot>processMsg( char * msg )</slot>
- <slot>processCtrlReq( const char * req )</slot>
- <slot>receiveMsgs()</slot>
- <slot>connectB()</slot>
- <slot>selectNetwork( const QString &amp; sel )</slot>
- <slot>editNetwork()</slot>
- <slot>addNetwork()</slot>
- <slot>selectAdapter( const QString &amp; sel )</slot>
-</slots>
-<functions>
- <function access="private" specifier="non virtual">init()</function>
- <function access="private" specifier="non virtual">destroy()</function>
- <function access="private" specifier="non virtual" returnType="int">openCtrlConnection( const char * ifname )</function>
- <function returnType="int">ctrlRequest( const char * cmd, char * buf, size_t * buflen )</function>
- <function>triggerUpdate()</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/wpa_supplicant/wpa_gui/wpagui.ui.h b/wpa_supplicant/wpa_gui/wpagui.ui.h
deleted file mode 100644
index 678ff1be354b..000000000000
--- a/wpa_supplicant/wpa_gui/wpagui.ui.h
+++ /dev/null
@@ -1,730 +0,0 @@
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-
-#ifdef __MINGW32__
-/* Need to get getopt() */
-#include <unistd.h>
-#endif
-
-#include <stdlib.h>
-
-void WpaGui::init()
-{
- eh = NULL;
- scanres = NULL;
- udr = NULL;
- ctrl_iface = NULL;
- ctrl_conn = NULL;
- monitor_conn = NULL;
- msgNotifier = NULL;
- ctrl_iface_dir = strdup("/var/run/wpa_supplicant");
-
- parse_argv();
-
- textStatus->setText("connecting to wpa_supplicant");
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), SLOT(ping()));
- timer->start(1000, FALSE);
-
- if (openCtrlConnection(ctrl_iface) < 0) {
- printf("Failed to open control connection to wpa_supplicant.\n");
- }
-
- updateStatus();
- networkMayHaveChanged = true;
- updateNetworks();
-}
-
-
-void WpaGui::destroy()
-{
- delete msgNotifier;
-
- if (monitor_conn) {
- wpa_ctrl_detach(monitor_conn);
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- }
- if (ctrl_conn) {
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- }
-
- if (eh) {
- eh->close();
- delete eh;
- eh = NULL;
- }
-
- if (scanres) {
- scanres->close();
- delete scanres;
- scanres = NULL;
- }
-
- if (udr) {
- udr->close();
- delete udr;
- udr = NULL;
- }
-
- free(ctrl_iface);
- ctrl_iface = NULL;
-
- free(ctrl_iface_dir);
- ctrl_iface_dir = NULL;
-}
-
-
-void WpaGui::parse_argv()
-{
- int c;
- for (;;) {
- c = getopt(qApp->argc(), qApp->argv(), "i:p:");
- if (c < 0)
- break;
- switch (c) {
- case 'i':
- free(ctrl_iface);
- ctrl_iface = strdup(optarg);
- break;
- case 'p':
- free(ctrl_iface_dir);
- ctrl_iface_dir = strdup(optarg);
- break;
- }
- }
-}
-
-
-int WpaGui::openCtrlConnection(const char *ifname)
-{
- char *cfile;
- int flen;
- char buf[2048], *pos, *pos2;
- size_t len;
-
- if (ifname) {
- if (ifname != ctrl_iface) {
- free(ctrl_iface);
- ctrl_iface = strdup(ifname);
- }
- } else {
-#ifdef CONFIG_CTRL_IFACE_UDP
- free(ctrl_iface);
- ctrl_iface = strdup("udp");
-#endif /* CONFIG_CTRL_IFACE_UDP */
-#ifdef CONFIG_CTRL_IFACE_UNIX
- struct dirent *dent;
- DIR *dir = opendir(ctrl_iface_dir);
- free(ctrl_iface);
- ctrl_iface = NULL;
- if (dir) {
- while ((dent = readdir(dir))) {
-#ifdef _DIRENT_HAVE_D_TYPE
- /* Skip the file if it is not a socket.
- * Also accept DT_UNKNOWN (0) in case
- * the C library or underlying file
- * system does not support d_type. */
- if (dent->d_type != DT_SOCK &&
- dent->d_type != DT_UNKNOWN)
- continue;
-#endif /* _DIRENT_HAVE_D_TYPE */
-
- if (strcmp(dent->d_name, ".") == 0 ||
- strcmp(dent->d_name, "..") == 0)
- continue;
- printf("Selected interface '%s'\n", dent->d_name);
- ctrl_iface = strdup(dent->d_name);
- break;
- }
- closedir(dir);
- }
-#endif /* CONFIG_CTRL_IFACE_UNIX */
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- struct wpa_ctrl *ctrl;
- int ret;
-
- free(ctrl_iface);
- ctrl_iface = NULL;
-
- ctrl = wpa_ctrl_open(NULL);
- if (ctrl) {
- len = sizeof(buf) - 1;
- ret = wpa_ctrl_request(ctrl, "INTERFACES", 10, buf, &len, NULL);
- if (ret >= 0) {
- buf[len] = '\0';
- pos = strchr(buf, '\n');
- if (pos)
- *pos = '\0';
- ctrl_iface = strdup(buf);
- }
- wpa_ctrl_close(ctrl);
- }
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
- }
-
- if (ctrl_iface == NULL)
- return -1;
-
-#ifdef CONFIG_CTRL_IFACE_UNIX
- flen = strlen(ctrl_iface_dir) + strlen(ctrl_iface) + 2;
- cfile = (char *) malloc(flen);
- if (cfile == NULL)
- return -1;
- snprintf(cfile, flen, "%s/%s", ctrl_iface_dir, ctrl_iface);
-#else /* CONFIG_CTRL_IFACE_UNIX */
- flen = strlen(ctrl_iface) + 1;
- cfile = (char *) malloc(flen);
- if (cfile == NULL)
- return -1;
- snprintf(cfile, flen, "%s", ctrl_iface);
-#endif /* CONFIG_CTRL_IFACE_UNIX */
-
- if (ctrl_conn) {
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- }
-
- if (monitor_conn) {
- delete msgNotifier;
- msgNotifier = NULL;
- wpa_ctrl_detach(monitor_conn);
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- }
-
- printf("Trying to connect to '%s'\n", cfile);
- ctrl_conn = wpa_ctrl_open(cfile);
- if (ctrl_conn == NULL) {
- free(cfile);
- return -1;
- }
- monitor_conn = wpa_ctrl_open(cfile);
- free(cfile);
- if (monitor_conn == NULL) {
- wpa_ctrl_close(ctrl_conn);
- return -1;
- }
- if (wpa_ctrl_attach(monitor_conn)) {
- printf("Failed to attach to wpa_supplicant\n");
- wpa_ctrl_close(monitor_conn);
- monitor_conn = NULL;
- wpa_ctrl_close(ctrl_conn);
- ctrl_conn = NULL;
- return -1;
- }
-
-#if defined(CONFIG_CTRL_IFACE_UNIX) || defined(CONFIG_CTRL_IFACE_UDP)
- msgNotifier = new QSocketNotifier(wpa_ctrl_get_fd(monitor_conn),
- QSocketNotifier::Read, this);
- connect(msgNotifier, SIGNAL(activated(int)), SLOT(receiveMsgs()));
-#endif
-
- adapterSelect->clear();
- adapterSelect->insertItem(ctrl_iface);
- adapterSelect->setCurrentItem(0);
-
- len = sizeof(buf) - 1;
- if (wpa_ctrl_request(ctrl_conn, "INTERFACES", 10, buf, &len, NULL) >= 0) {
- buf[len] = '\0';
- pos = buf;
- while (*pos) {
- pos2 = strchr(pos, '\n');
- if (pos2)
- *pos2 = '\0';
- if (strcmp(pos, ctrl_iface) != 0)
- adapterSelect->insertItem(pos);
- if (pos2)
- pos = pos2 + 1;
- else
- break;
- }
- }
-
- return 0;
-}
-
-
-static void wpa_gui_msg_cb(char *msg, size_t)
-{
- /* This should not happen anymore since two control connections are used. */
- printf("missed message: %s\n", msg);
-}
-
-
-int WpaGui::ctrlRequest(const char *cmd, char *buf, size_t *buflen)
-{
- int ret;
-
- if (ctrl_conn == NULL)
- return -3;
- ret = wpa_ctrl_request(ctrl_conn, cmd, strlen(cmd), buf, buflen,
- wpa_gui_msg_cb);
- if (ret == -2) {
- printf("'%s' command timed out.\n", cmd);
- } else if (ret < 0) {
- printf("'%s' command failed.\n", cmd);
- }
-
- return ret;
-}
-
-
-void WpaGui::updateStatus()
-{
- char buf[2048], *start, *end, *pos;
- size_t len;
-
- pingsToStatusUpdate = 10;
-
- len = sizeof(buf) - 1;
- if (ctrl_conn == NULL || ctrlRequest("STATUS", buf, &len) < 0) {
- textStatus->setText("Could not get status from wpa_supplicant");
- textAuthentication->clear();
- textEncryption->clear();
- textSsid->clear();
- textBssid->clear();
- textIpAddress->clear();
- return;
- }
-
- buf[len] = '\0';
-
- bool auth_updated = false, ssid_updated = false;
- bool bssid_updated = false, ipaddr_updated = false;
- bool status_updated = false;
- char *pairwise_cipher = NULL, *group_cipher = NULL;
-
- start = buf;
- while (*start) {
- bool last = false;
- end = strchr(start, '\n');
- if (end == NULL) {
- last = true;
- end = start;
- while (end[0] && end[1])
- end++;
- }
- *end = '\0';
-
- pos = strchr(start, '=');
- if (pos) {
- *pos++ = '\0';
- if (strcmp(start, "bssid") == 0) {
- bssid_updated = true;
- textBssid->setText(pos);
- } else if (strcmp(start, "ssid") == 0) {
- ssid_updated = true;
- textSsid->setText(pos);
- } else if (strcmp(start, "ip_address") == 0) {
- ipaddr_updated = true;
- textIpAddress->setText(pos);
- } else if (strcmp(start, "wpa_state") == 0) {
- status_updated = true;
- textStatus->setText(pos);
- } else if (strcmp(start, "key_mgmt") == 0) {
- auth_updated = true;
- textAuthentication->setText(pos);
- /* TODO: could add EAP status to this */
- } else if (strcmp(start, "pairwise_cipher") == 0) {
- pairwise_cipher = pos;
- } else if (strcmp(start, "group_cipher") == 0) {
- group_cipher = pos;
- }
- }
-
- if (last)
- break;
- start = end + 1;
- }
-
- if (pairwise_cipher || group_cipher) {
- QString encr;
- if (pairwise_cipher && group_cipher &&
- strcmp(pairwise_cipher, group_cipher) != 0) {
- encr.append(pairwise_cipher);
- encr.append(" + ");
- encr.append(group_cipher);
- } else if (pairwise_cipher) {
- encr.append(pairwise_cipher);
- } else {
- encr.append(group_cipher);
- encr.append(" [group key only]");
- }
- textEncryption->setText(encr);
- } else
- textEncryption->clear();
-
- if (!status_updated)
- textStatus->clear();
- if (!auth_updated)
- textAuthentication->clear();
- if (!ssid_updated)
- textSsid->clear();
- if (!bssid_updated)
- textBssid->clear();
- if (!ipaddr_updated)
- textIpAddress->clear();
-}
-
-
-void WpaGui::updateNetworks()
-{
- char buf[2048], *start, *end, *id, *ssid, *bssid, *flags;
- size_t len;
- int first_active = -1;
- bool selected = false;
-
- if (!networkMayHaveChanged)
- return;
-
- networkSelect->clear();
-
- if (ctrl_conn == NULL)
- return;
-
- len = sizeof(buf) - 1;
- if (ctrlRequest("LIST_NETWORKS", buf, &len) < 0)
- return;
-
- buf[len] = '\0';
- start = strchr(buf, '\n');
- if (start == NULL)
- return;
- start++;
-
- while (*start) {
- bool last = false;
- end = strchr(start, '\n');
- if (end == NULL) {
- last = true;
- end = start;
- while (end[0] && end[1])
- end++;
- }
- *end = '\0';
-
- id = start;
- ssid = strchr(id, '\t');
- if (ssid == NULL)
- break;
- *ssid++ = '\0';
- bssid = strchr(ssid, '\t');
- if (bssid == NULL)
- break;
- *bssid++ = '\0';
- flags = strchr(bssid, '\t');
- if (flags == NULL)
- break;
- *flags++ = '\0';
-
- QString network(id);
- network.append(": ");
- network.append(ssid);
- networkSelect->insertItem(network);
-
- if (strstr(flags, "[CURRENT]")) {
- networkSelect->setCurrentItem(networkSelect->count() - 1);
- selected = true;
- } else if (first_active < 0 && strstr(flags, "[DISABLED]") == NULL)
- first_active = networkSelect->count() - 1;
-
- if (last)
- break;
- start = end + 1;
- }
-
- if (!selected && first_active >= 0)
- networkSelect->setCurrentItem(first_active);
-
- networkMayHaveChanged = false;
-}
-
-
-void WpaGui::helpIndex()
-{
- printf("helpIndex\n");
-}
-
-
-void WpaGui::helpContents()
-{
- printf("helpContents\n");
-}
-
-
-void WpaGui::helpAbout()
-{
- QMessageBox::about(this, "wpa_gui for wpa_supplicant",
- "Copyright (c) 2003-2008,\n"
- "Jouni Malinen <j@w1.fi>\n"
- "and contributors.\n"
- "\n"
- "This program is free software. You can\n"
- "distribute it and/or modify it under the terms of\n"
- "the GNU General Public License version 2.\n"
- "\n"
- "Alternatively, this software may be distributed\n"
- "under the terms of the BSD license.\n"
- "\n"
- "This product includes software developed\n"
- "by the OpenSSL Project for use in the\n"
- "OpenSSL Toolkit (http://www.openssl.org/)\n");
-}
-
-
-void WpaGui::disconnect()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
- ctrlRequest("DISCONNECT", reply, &reply_len);
-}
-
-
-void WpaGui::scan()
-{
- if (scanres) {
- scanres->close();
- delete scanres;
- }
-
- scanres = new ScanResults();
- if (scanres == NULL)
- return;
- scanres->setWpaGui(this);
- scanres->show();
- scanres->exec();
-}
-
-
-void WpaGui::eventHistory()
-{
- if (eh) {
- eh->close();
- delete eh;
- }
-
- eh = new EventHistory();
- if (eh == NULL)
- return;
- eh->addEvents(msgs);
- eh->show();
- eh->exec();
-}
-
-
-void WpaGui::ping()
-{
- char buf[10];
- size_t len;
-
-#ifdef CONFIG_CTRL_IFACE_NAMED_PIPE
- /*
- * QSocketNotifier cannot be used with Windows named pipes, so use a timer
- * to check for received messages for now. This could be optimized be doing
- * something specific to named pipes or Windows events, but it is not clear
- * what would be the best way of doing that in Qt.
- */
- receiveMsgs();
-#endif /* CONFIG_CTRL_IFACE_NAMED_PIPE */
-
- if (scanres && !scanres->isVisible()) {
- delete scanres;
- scanres = NULL;
- }
-
- if (eh && !eh->isVisible()) {
- delete eh;
- eh = NULL;
- }
-
- if (udr && !udr->isVisible()) {
- delete udr;
- udr = NULL;
- }
-
- len = sizeof(buf) - 1;
- if (ctrlRequest("PING", buf, &len) < 0) {
- printf("PING failed - trying to reconnect\n");
- if (openCtrlConnection(ctrl_iface) >= 0) {
- printf("Reconnected successfully\n");
- pingsToStatusUpdate = 0;
- }
- }
-
- pingsToStatusUpdate--;
- if (pingsToStatusUpdate <= 0) {
- updateStatus();
- updateNetworks();
- }
-}
-
-
-static int str_match(const char *a, const char *b)
-{
- return strncmp(a, b, strlen(b)) == 0;
-}
-
-
-void WpaGui::processMsg(char *msg)
-{
- char *pos = msg, *pos2;
- int priority = 2;
-
- if (*pos == '<') {
- /* skip priority */
- pos++;
- priority = atoi(pos);
- pos = strchr(pos, '>');
- if (pos)
- pos++;
- else
- pos = msg;
- }
-
- WpaMsg wm(pos, priority);
- if (eh)
- eh->addEvent(wm);
- msgs.append(wm);
- while (msgs.count() > 100)
- msgs.pop_front();
-
- /* Update last message with truncated version of the event */
- if (strncmp(pos, "CTRL-", 5) == 0) {
- pos2 = strchr(pos, str_match(pos, WPA_CTRL_REQ) ? ':' : ' ');
- if (pos2)
- pos2++;
- else
- pos2 = pos;
- } else
- pos2 = pos;
- QString lastmsg = pos2;
- lastmsg.truncate(40);
- textLastMessage->setText(lastmsg);
-
- pingsToStatusUpdate = 0;
- networkMayHaveChanged = true;
-
- if (str_match(pos, WPA_CTRL_REQ))
- processCtrlReq(pos + strlen(WPA_CTRL_REQ));
-}
-
-
-void WpaGui::processCtrlReq(const char *req)
-{
- if (udr) {
- udr->close();
- delete udr;
- }
- udr = new UserDataRequest();
- if (udr == NULL)
- return;
- if (udr->setParams(this, req) < 0) {
- delete udr;
- udr = NULL;
- return;
- }
- udr->show();
- udr->exec();
-}
-
-
-void WpaGui::receiveMsgs()
-{
- char buf[256];
- size_t len;
-
- while (monitor_conn && wpa_ctrl_pending(monitor_conn) > 0) {
- len = sizeof(buf) - 1;
- if (wpa_ctrl_recv(monitor_conn, buf, &len) == 0) {
- buf[len] = '\0';
- processMsg(buf);
- }
- }
-}
-
-
-void WpaGui::connectB()
-{
- char reply[10];
- size_t reply_len = sizeof(reply);
- ctrlRequest("REASSOCIATE", reply, &reply_len);
-}
-
-
-void WpaGui::selectNetwork( const QString &sel )
-{
- QString cmd(sel);
- char reply[10];
- size_t reply_len = sizeof(reply);
-
- int pos = cmd.find(':');
- if (pos < 0) {
- printf("Invalid selectNetwork '%s'\n", cmd.ascii());
- return;
- }
- cmd.truncate(pos);
- cmd.prepend("SELECT_NETWORK ");
- ctrlRequest(cmd.ascii(), reply, &reply_len);
-}
-
-
-void WpaGui::editNetwork()
-{
- QString sel(networkSelect->currentText());
- int pos = sel.find(':');
- if (pos < 0) {
- printf("Invalid selectNetwork '%s'\n", sel.ascii());
- return;
- }
- sel.truncate(pos);
-
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(this);
-
- nc->paramsFromConfig(sel.toInt());
- nc->show();
- nc->exec();
-}
-
-
-void WpaGui::triggerUpdate()
-{
- updateStatus();
- networkMayHaveChanged = true;
- updateNetworks();
-}
-
-
-void WpaGui::addNetwork()
-{
- NetworkConfig *nc = new NetworkConfig();
- if (nc == NULL)
- return;
- nc->setWpaGui(this);
- nc->newNetwork();
- nc->show();
- nc->exec();
-}
-
-
-void WpaGui::selectAdapter( const QString & sel )
-{
- if (openCtrlConnection(sel.ascii()) < 0)
- printf("Failed to open control connection to wpa_supplicant.\n");
- updateStatus();
- updateNetworks();
-}
diff --git a/wpa_supplicant/wpa_gui/wpamsg.h b/wpa_supplicant/wpa_gui/wpamsg.h
deleted file mode 100644
index f3fce06978c7..000000000000
--- a/wpa_supplicant/wpa_gui/wpamsg.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef WPAMSG_H
-#define WPAMSG_H
-
-class WpaMsg;
-
-#if QT_VERSION >= 0x040000
-#include <QDateTime>
-#include <QLinkedList>
-typedef QLinkedList<WpaMsg> WpaMsgList;
-#else
-#include <qdatetime.h>
-typedef QValueList<WpaMsg> WpaMsgList;
-#endif
-
-class WpaMsg {
-public:
- WpaMsg() {}
- WpaMsg(const QString &_msg, int _priority = 2)
- : msg(_msg), priority(_priority)
- {
- timestamp = QDateTime::currentDateTime();
- }
-
- QString getMsg() const { return msg; }
- int getPriority() const { return priority; }
- QDateTime getTimestamp() const { return timestamp; }
-
-private:
- QString msg;
- int priority;
- QDateTime timestamp;
-};
-
-#endif /* WPAMSG_H */