diff options
| -rw-r--r-- | src/eap_peer/eap_proxy_qmi.c | 2 | ||||
| -rw-r--r-- | wpa_supplicant/Android.mk | 34 | ||||
| -rw-r--r-- | wpa_supplicant/wpa_supplicant.c | 6 | ||||
| -rw-r--r-- | wpa_supplicant/wpa_supplicant_conf.mk | 2 |
4 files changed, 42 insertions, 2 deletions
diff --git a/src/eap_peer/eap_proxy_qmi.c b/src/eap_peer/eap_proxy_qmi.c index 0cfb9708..e95b0e10 100644 --- a/src/eap_peer/eap_proxy_qmi.c +++ b/src/eap_peer/eap_proxy_qmi.c @@ -1522,6 +1522,8 @@ static char bin_to_hexchar(u8 ch) } return ch + 'a' - 10; } + +extern struct eap_peer_config * eap_get_config(struct eap_sm *sm) __attribute__((weak)); static Boolean eap_proxy_build_identity(struct eap_proxy_sm *eap_proxy, u8 id, struct eap_sm *eap_sm) { struct eap_hdr *resp; diff --git a/wpa_supplicant/Android.mk b/wpa_supplicant/Android.mk index f65076c7..d4841ad5 100644 --- a/wpa_supplicant/Android.mk +++ b/wpa_supplicant/Android.mk @@ -550,7 +550,11 @@ endif ifdef CONFIG_EAP_PROXY L_CFLAGS += -DCONFIG_EAP_PROXY +ifneq ($(CONFIG_EAP_PROXY),qmi) +# QMI needs proprietary headers to build :( +# Spin it into a blobbable lib OBJS += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c +endif include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk CONFIG_IEEE8021X_EAPOL=y endif @@ -1556,6 +1560,32 @@ LOCAL_SRC_FILES := $(OBJS_c) LOCAL_C_INCLUDES := $(INCLUDES) include $(BUILD_EXECUTABLE) +# This needs QMI artifacts to be built +ifneq ($(QCPATH),) + +ifeq ($(CONFIG_EAP_PROXY),qmi) +include $(CLEAR_VARS) + +LOCAL_MODULE = libwpa_qmi_eap_proxy +LOCAL_SHARED_LIBRARIES := libcutils liblog libwpa_client +LOCAL_SRC_FILES += src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).c +LOCAL_SRC_FILES += src/utils/wpa_debug.c +LOCAL_SRC_FILES += src/utils/wpabuf.c +LOCAL_SRC_FILES += src/utils/eloop.c +LOCAL_SRC_FILES += src/utils/common.c +include $(LOCAL_PATH)/eap_proxy_$(CONFIG_EAP_PROXY).mk +LOCAL_C_INCLUDES := $(INCLUDES) +LOCAL_CFLAGS = $(L_CFLAGS) + +LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY) +LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY) + +include $(BUILD_SHARED_LIBRARY) + +endif # qmi EAP_PROXY +endif # QCPATH + + ######################## include $(CLEAR_VARS) LOCAL_MODULE := wpa_supplicant @@ -1567,8 +1597,12 @@ LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB) endif LOCAL_SHARED_LIBRARIES := libc libcutils liblog ifdef CONFIG_EAP_PROXY +ifneq ($(CONFIG_EAP_PROXY),qmi) LOCAL_STATIC_LIBRARIES += $(LIB_STATIC_EAP_PROXY) LOCAL_SHARED_LIBRARIES += $(LIB_SHARED_EAP_PROXY) +else +LOCAL_SHARED_LIBRARIES += libwpa_qmi_eap_proxy +endif endif ifeq ($(CONFIG_TLS), openssl) LOCAL_SHARED_LIBRARIES += libcrypto libssl libkeystore_binder diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index ef1c63fd..366dd6c6 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -5696,7 +5696,11 @@ int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s, eap->identity = (u8 *) os_strdup(value); eap->identity_len = os_strlen(value); eap->pending_req_identity = 0; - if (ssid == wpa_s->current_ssid) + if (ssid == wpa_s->current_ssid +#ifndef CONFIG_EAP_PROXY + && wpa_s->wpa_state < WPA_ASSOCIATING +#endif + ) wpa_s->reassociate = 1; break; case WPA_CTRL_REQ_EAP_PASSWORD: diff --git a/wpa_supplicant/wpa_supplicant_conf.mk b/wpa_supplicant/wpa_supplicant_conf.mk index 74986ea6..8a5aca7f 100644 --- a/wpa_supplicant/wpa_supplicant_conf.mk +++ b/wpa_supplicant/wpa_supplicant_conf.mk @@ -20,7 +20,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi include $(BUILD_SYSTEM)/base_rules.mk -WPA_SUPPLICANT_CONF_TEMPLATE := $(LOCAL_PATH)/wpa_supplicant_template.conf +WPA_SUPPLICANT_CONF_TEMPLATE ?= $(LOCAL_PATH)/wpa_supplicant_template.conf WPA_SUPPLICANT_CONF_SCRIPT := $(LOCAL_PATH)/wpa_supplicant_conf.sh $(LOCAL_BUILT_MODULE): PRIVATE_WIFI_DRIVER_SOCKET_IFACE := $(WIFI_DRIVER_SOCKET_IFACE) $(LOCAL_BUILT_MODULE): PRIVATE_WPA_SUPPLICANT_CONF_TEMPLATE := $(WPA_SUPPLICANT_CONF_TEMPLATE) |
