summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-09-12 23:13:28 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-09-13 00:07:39 +0200
commitf820c5f8ebb63ad9f8ec80a78c12eee37150a46d (patch)
tree115ad0fb5d9509046aac652be19d851df9a0ee31
parentbfe10a24bbf013304ac22dd1b7ac0380004f6394 (diff)
downloadhardware_replicant_wlan-wip/replican-11/generic-wifi.tar.gz
hardware_replicant_wlan-wip/replican-11/generic-wifi.tar.bz2
hardware_replicant_wlan-wip/replican-11/generic-wifi.zip
Revert "Add wpa_supplicant_8_lib"wip/replican-11/generic-wifi
This reverts commit c210319a321c3fc6a3afbc24dc368f5c7da2304b.
-rw-r--r--wpa_supplicant_8_lib/Android.mk74
-rw-r--r--wpa_supplicant_8_lib/MODULE_LICENSE_BSD0
-rw-r--r--wpa_supplicant_8_lib/NOTICE38
-rw-r--r--wpa_supplicant_8_lib/driver_cmd_nl80211.c201
-rw-r--r--wpa_supplicant_8_lib/driver_cmd_wext.c391
-rw-r--r--wpa_supplicant_8_lib/driver_cmd_wext.h32
6 files changed, 0 insertions, 736 deletions
diff --git a/wpa_supplicant_8_lib/Android.mk b/wpa_supplicant_8_lib/Android.mk
deleted file mode 100644
index 0d8a47f..0000000
--- a/wpa_supplicant_8_lib/Android.mk
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(WPA_SUPPLICANT_VERSION),VER_0_8_X)
-
-ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),)
- CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y
-endif
-
-WPA_SUPPL_DIR = external/wpa_supplicant_8
-WPA_SRC_FILE :=
-
-include $(WPA_SUPPL_DIR)/wpa_supplicant/android.config
-
-WPA_SUPPL_DIR_INCLUDE = $(WPA_SUPPL_DIR)/src \
- $(WPA_SUPPL_DIR)/src/common \
- $(WPA_SUPPL_DIR)/src/drivers \
- $(WPA_SUPPL_DIR)/src/l2_packet \
- $(WPA_SUPPL_DIR)/src/utils \
- $(WPA_SUPPL_DIR)/src/wps \
- $(WPA_SUPPL_DIR)/wpa_supplicant
-
-ifdef CONFIG_DRIVER_NL80211
-WPA_SUPPL_DIR_INCLUDE += external/libnl/include
-WPA_SRC_FILE += driver_cmd_nl80211.c
-endif
-
-ifdef CONFIG_DRIVER_WEXT
-WPA_SRC_FILE += driver_cmd_wext.c
-endif
-
-ifeq ($(TARGET_ARCH),arm)
-# To force sizeof(enum) = 4
-L_CFLAGS += -mabi=aapcs-linux
-endif
-
-ifdef CONFIG_ANDROID_LOG
-L_CFLAGS += -DCONFIG_ANDROID_LOG
-endif
-
-ifdef CONFIG_P2P
-L_CFLAGS += -DCONFIG_P2P
-endif
-
-L_CFLAGS += -Wall -Werror -Wno-unused-parameter -Wno-macro-redefined
-
-########################
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := lib_driver_cmd_rtl
-LOCAL_SHARED_LIBRARIES := libc libcutils
-LOCAL_CFLAGS := $(L_CFLAGS)
-LOCAL_SRC_FILES := $(WPA_SRC_FILE)
-LOCAL_C_INCLUDES := $(WPA_SUPPL_DIR_INCLUDE)
-LOCAL_VENDOR_MODULE := true
-include $(BUILD_STATIC_LIBRARY)
-
-########################
-
-endif
diff --git a/wpa_supplicant_8_lib/MODULE_LICENSE_BSD b/wpa_supplicant_8_lib/MODULE_LICENSE_BSD
deleted file mode 100644
index e69de29..0000000
--- a/wpa_supplicant_8_lib/MODULE_LICENSE_BSD
+++ /dev/null
diff --git a/wpa_supplicant_8_lib/NOTICE b/wpa_supplicant_8_lib/NOTICE
deleted file mode 100644
index d4d14d0..0000000
--- a/wpa_supplicant_8_lib/NOTICE
+++ /dev/null
@@ -1,38 +0,0 @@
-
-Copyright (c) 2005-2010, The Android Open Source 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:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * Neither the name of The Android Open Source Project nor the names
- of its contributors may be used to endorse or promote products
- derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"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
-COPYRIGHT OWNER 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.
-
- * Copyright (c) 2002-2010, Jouni Malinen <j@w1.fi>
- * Copyright (c) 2003-2004, Instant802 Networks, Inc.
- * Copyright (c) 2005-2006, Devicescape Software, Inc.
- * Copyright (c) 2007, Johannes Berg <johannes@sipsolutions.net>
- * Copyright (c) 2009-2010, Atheros Communications
- *
- * This software is distributed under the terms of BSD license.
diff --git a/wpa_supplicant_8_lib/driver_cmd_nl80211.c b/wpa_supplicant_8_lib/driver_cmd_nl80211.c
deleted file mode 100644
index 9b4c5e3..0000000
--- a/wpa_supplicant_8_lib/driver_cmd_nl80211.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Driver interaction with extended Linux CFG8021
- *
- * This software is distributed under the terms of BSD license.
- *
- */
-
-#include "includes.h"
-#include <sys/types.h>
-#include <fcntl.h>
-#include <net/if.h>
-
-#include "common.h"
-#include "linux_ioctl.h"
-#include "driver_nl80211.h"
-#include "wpa_supplicant_i.h"
-#include "config.h"
-#ifdef ANDROID
-#include "android_drv.h"
-#endif
-
-typedef struct android_wifi_priv_cmd {
- char *bufaddr;
- int used_len;
- int total_len;
-} android_wifi_priv_cmd;
-
-static int drv_errors = 0;
-
-static void wpa_driver_send_hang_msg(struct wpa_driver_nl80211_data *drv)
-{
- drv_errors++;
- if (drv_errors > DRV_NUMBER_SEQUENTIAL_ERRORS) {
- drv_errors = 0;
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
- }
-}
-
-static void wpa_driver_notify_country_change(void *ctx, char *cmd)
-{
- if ((os_strncasecmp(cmd, "COUNTRY", 7) == 0) ||
- (os_strncasecmp(cmd, "SETBAND", 7) == 0)) {
- union wpa_event_data event;
-
- os_memset(&event, 0, sizeof(event));
- event.channel_list_changed.initiator = REGDOM_SET_BY_USER;
- if (os_strncasecmp(cmd, "COUNTRY", 7) == 0) {
- event.channel_list_changed.type = REGDOM_TYPE_COUNTRY;
- if (os_strlen(cmd) > 9) {
- event.channel_list_changed.alpha2[0] = cmd[8];
- event.channel_list_changed.alpha2[1] = cmd[9];
- }
- } else {
- event.channel_list_changed.type = REGDOM_TYPE_UNKNOWN;
- }
- wpa_supplicant_event(ctx, EVENT_CHANNEL_LIST_CHANGED, &event);
- }
-}
-
-int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
- size_t buf_len )
-{
- struct i802_bss *bss = priv;
- struct wpa_driver_nl80211_data *drv = bss->drv;
- struct ifreq ifr;
- android_wifi_priv_cmd priv_cmd;
- int ret = 0;
-
- if (bss->ifindex <= 0 && bss->wdev_id > 0) {
- /* DRIVER CMD received on the DEDICATED P2P Interface which doesn't
- * have an NETDEVICE associated with it. So we have to re-route the
- * command to the parent NETDEVICE
- */
- struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)(drv->ctx);
-
- wpa_printf(MSG_DEBUG, "Re-routing DRIVER cmd to parent iface");
- if (wpa_s && wpa_s->parent) {
- /* Update the nl80211 pointers corresponding to parent iface */
- bss = wpa_s->parent->drv_priv;
- drv = bss->drv;
- wpa_printf(MSG_DEBUG, "Re-routing command to iface: %s"
- " cmd (%s)", bss->ifname, cmd);
- }
- }
-
- if (os_strcasecmp(cmd, "STOP") == 0) {
- linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0);
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED");
- } else if (os_strcasecmp(cmd, "START") == 0) {
- linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1);
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STARTED");
- } else if (os_strcasecmp(cmd, "MACADDR") == 0) {
- u8 macaddr[ETH_ALEN] = {};
-
- ret = linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname, macaddr);
- if (!ret)
- ret = os_snprintf(buf, buf_len,
- "Macaddr = " MACSTR "\n", MAC2STR(macaddr));
- } else { /* Use private command */
- os_memcpy(buf, cmd, strlen(cmd) + 1);
- memset(&ifr, 0, sizeof(ifr));
- memset(&priv_cmd, 0, sizeof(priv_cmd));
- os_strlcpy(ifr.ifr_name, bss->ifname, IFNAMSIZ);
- priv_cmd.bufaddr = buf;
- priv_cmd.used_len = buf_len;
- priv_cmd.total_len = buf_len;
- ifr.ifr_data = &priv_cmd;
-
- if ((ret = ioctl(drv->global->ioctl_sock, SIOCDEVPRIVATE + 1, &ifr)) < 0) {
- wpa_printf(MSG_ERROR, "%s: failed to issue private command: %s", __func__, cmd);
- wpa_driver_send_hang_msg(drv);
- } else {
- drv_errors = 0;
- ret = 0;
- if ((os_strcasecmp(cmd, "LINKSPEED") == 0) ||
- (os_strcasecmp(cmd, "RSSI") == 0) ||
- (os_strcasecmp(cmd, "GETBAND") == 0) ||
- (os_strncasecmp(cmd, "WLS_BATCHING", 12) == 0))
- ret = strlen(buf);
- wpa_driver_notify_country_change(drv->ctx, cmd);
- wpa_printf(MSG_DEBUG, "%s %s len = %d, %zu", __func__, buf, ret, strlen(buf));
- }
- }
- return ret;
-}
-
-int wpa_driver_set_p2p_noa(void *priv, u8 count, int start, int duration)
-{
- char buf[MAX_DRV_CMD_SIZE];
-
- memset(buf, 0, sizeof(buf));
- wpa_printf(MSG_DEBUG, "%s: Entry", __func__);
- snprintf(buf, sizeof(buf), "P2P_SET_NOA %d %d %d", count, start, duration);
- return wpa_driver_nl80211_driver_cmd(priv, buf, buf, strlen(buf)+1);
-}
-
-int wpa_driver_get_p2p_noa(void *priv __unused, u8 *buf __unused, size_t len __unused)
-{
- /* Return 0 till we handle p2p_presence request completely in the driver */
- return 0;
-}
-
-int wpa_driver_set_p2p_ps(void *priv, int legacy_ps, int opp_ps, int ctwindow)
-{
- char buf[MAX_DRV_CMD_SIZE];
-
- memset(buf, 0, sizeof(buf));
- wpa_printf(MSG_DEBUG, "%s: Entry", __func__);
- snprintf(buf, sizeof(buf), "P2P_SET_PS %d %d %d", legacy_ps, opp_ps, ctwindow);
- return wpa_driver_nl80211_driver_cmd(priv, buf, buf, strlen(buf) + 1);
-}
-
-int wpa_driver_set_ap_wps_p2p_ie(void *priv, const struct wpabuf *beacon,
- const struct wpabuf *proberesp,
- const struct wpabuf *assocresp)
-{
- char *buf;
- const struct wpabuf *ap_wps_p2p_ie = NULL;
-
- char *_cmd = "SET_AP_WPS_P2P_IE";
- char *pbuf;
- int ret = 0;
- int i, buf_len;
- struct cmd_desc {
- int cmd;
- const struct wpabuf *src;
- } cmd_arr[] = {
- {0x1, beacon},
- {0x2, proberesp},
- {0x4, assocresp},
- {-1, NULL}
- };
-
- wpa_printf(MSG_DEBUG, "%s: Entry", __func__);
- for (i = 0; cmd_arr[i].cmd != -1; i++) {
- ap_wps_p2p_ie = cmd_arr[i].src;
- if (ap_wps_p2p_ie) {
- buf_len = strlen(_cmd) + 3 + wpabuf_len(ap_wps_p2p_ie);
- buf = os_zalloc(buf_len);
- if (NULL == buf) {
- wpa_printf(MSG_ERROR, "%s: Out of memory",
- __func__);
- ret = -1;
- break;
- }
- } else {
- continue;
- }
- pbuf = buf;
- pbuf += snprintf(pbuf, buf_len - wpabuf_len(ap_wps_p2p_ie),
- "%s %d",_cmd, cmd_arr[i].cmd);
- *pbuf++ = '\0';
- os_memcpy(pbuf, wpabuf_head(ap_wps_p2p_ie), wpabuf_len(ap_wps_p2p_ie));
- ret = wpa_driver_nl80211_driver_cmd(priv, buf, buf, buf_len);
- os_free(buf);
- if (ret < 0)
- break;
- }
-
- return ret;
-}
diff --git a/wpa_supplicant_8_lib/driver_cmd_wext.c b/wpa_supplicant_8_lib/driver_cmd_wext.c
deleted file mode 100644
index 7331964..0000000
--- a/wpa_supplicant_8_lib/driver_cmd_wext.c
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Driver interaction with extended Linux Wireless Extensions
- *
- * This software is distributed under the terms of BSD license.
- *
- */
-
-#include "includes.h"
-#include <sys/ioctl.h>
-#include <net/if_arp.h>
-#include <net/if.h>
-
-#include "linux_wext.h"
-#include "common.h"
-#include "driver.h"
-#include "eloop.h"
-#include "priv_netlink.h"
-#include "driver_wext.h"
-#include "ieee802_11_defs.h"
-#include "wpa_common.h"
-#include "wpa_ctrl.h"
-#include "wpa_supplicant_i.h"
-#include "config.h"
-#include "linux_ioctl.h"
-#include "scan.h"
-
-#include "driver_cmd_wext.h"
-#ifdef ANDROID
-#include "android_drv.h"
-#endif /* ANDROID */
-
-#define RSSI_CMD "RSSI"
-#define LINKSPEED_CMD "LINKSPEED"
-
-/**
- * wpa_driver_wext_set_scan_timeout - Set scan timeout to report scan completion
- * @priv: Pointer to private wext data from wpa_driver_wext_init()
- *
- * This function can be used to set registered timeout when starting a scan to
- * generate a scan completed event if the driver does not report this.
- */
-static void wpa_driver_wext_set_scan_timeout(void *priv)
-{
- struct wpa_driver_wext_data *drv = priv;
- int timeout = 10; /* In case scan A and B bands it can be long */
-
- /* Not all drivers generate "scan completed" wireless event, so try to
- * read results after a timeout. */
- if (drv->scan_complete_events) {
- /*
- * The driver seems to deliver SIOCGIWSCAN events to notify
- * when scan is complete, so use longer timeout to avoid race
- * conditions with scanning and following association request.
- */
- timeout = 30;
- }
- wpa_printf(MSG_DEBUG, "Scan requested - scan timeout %d seconds",
- timeout);
- eloop_cancel_timeout(wpa_driver_wext_scan_timeout, drv, drv->ctx);
- eloop_register_timeout(timeout, 0, wpa_driver_wext_scan_timeout, drv,
- drv->ctx);
-}
-
-/**
- * wpa_driver_wext_combo_scan - Request the driver to initiate combo scan
- * @priv: Pointer to private wext data from wpa_driver_wext_init()
- * @params: Scan parameters
- * Returns: 0 on success, -1 on failure
- */
-int wpa_driver_wext_combo_scan(void *priv, struct wpa_driver_scan_params *params)
-{
- char buf[WEXT_CSCAN_BUF_LEN];
- struct wpa_driver_wext_data *drv = priv;
- struct iwreq iwr;
- int ret, bp;
- unsigned i;
-
- if (!drv->driver_is_started) {
- wpa_printf(MSG_DEBUG, "%s: Driver stopped", __func__);
- return 0;
- }
-
- wpa_printf(MSG_DEBUG, "%s: Start", __func__);
-
- /* Set list of SSIDs */
- bp = WEXT_CSCAN_HEADER_SIZE;
- os_memcpy(buf, WEXT_CSCAN_HEADER, bp);
- for(i=0; i < params->num_ssids; i++) {
- if ((bp + IW_ESSID_MAX_SIZE + 10) >= (int)sizeof(buf))
- break;
- wpa_printf(MSG_DEBUG, "For Scan: %s", params->ssids[i].ssid);
- buf[bp++] = WEXT_CSCAN_SSID_SECTION;
- buf[bp++] = params->ssids[i].ssid_len;
- os_memcpy(&buf[bp], params->ssids[i].ssid, params->ssids[i].ssid_len);
- bp += params->ssids[i].ssid_len;
- }
-
- /* Set list of channels */
- buf[bp++] = WEXT_CSCAN_CHANNEL_SECTION;
- buf[bp++] = 0;
-
- /* Set passive dwell time (default is 250) */
- buf[bp++] = WEXT_CSCAN_PASV_DWELL_SECTION;
- buf[bp++] = (u8)WEXT_CSCAN_PASV_DWELL_TIME;
- buf[bp++] = (u8)(WEXT_CSCAN_PASV_DWELL_TIME >> 8);
-
- /* Set home dwell time (default is 40) */
- buf[bp++] = WEXT_CSCAN_HOME_DWELL_SECTION;
- buf[bp++] = (u8)WEXT_CSCAN_HOME_DWELL_TIME;
- buf[bp++] = (u8)(WEXT_CSCAN_HOME_DWELL_TIME >> 8);
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- iwr.u.data.pointer = buf;
- iwr.u.data.length = bp;
-
- if ((ret = ioctl(drv->ioctl_sock, SIOCSIWPRIV, &iwr)) < 0) {
- if (!drv->bgscan_enabled)
- wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] (cscan): %d", ret);
- else
- ret = 0; /* Hide error in case of bg scan */
- }
- return ret;
-}
-
-static int wpa_driver_wext_set_cscan_params(char *buf, size_t buf_len, char *cmd)
-{
- char *pasv_ptr;
- int bp, i;
- u16 pasv_dwell = WEXT_CSCAN_PASV_DWELL_TIME_DEF;
- u8 channel;
-
- wpa_printf(MSG_DEBUG, "%s: %s", __func__, cmd);
-
- /* Get command parameters */
- pasv_ptr = os_strstr(cmd, ",TIME=");
- if (pasv_ptr) {
- *pasv_ptr = '\0';
- pasv_ptr += 6;
- pasv_dwell = (u16)atoi(pasv_ptr);
- if (pasv_dwell == 0)
- pasv_dwell = WEXT_CSCAN_PASV_DWELL_TIME_DEF;
- }
- channel = (u8)atoi(cmd + 5);
-
- bp = WEXT_CSCAN_HEADER_SIZE;
- os_memcpy(buf, WEXT_CSCAN_HEADER, bp);
-
- /* Set list of channels */
- buf[bp++] = WEXT_CSCAN_CHANNEL_SECTION;
- buf[bp++] = channel;
- if (channel != 0) {
- i = (pasv_dwell - 1) / WEXT_CSCAN_PASV_DWELL_TIME_DEF;
- for (; i > 0; i--) {
- if ((size_t)(bp + 12) >= buf_len)
- break;
- buf[bp++] = WEXT_CSCAN_CHANNEL_SECTION;
- buf[bp++] = channel;
- }
- } else {
- if (pasv_dwell > WEXT_CSCAN_PASV_DWELL_TIME_MAX)
- pasv_dwell = WEXT_CSCAN_PASV_DWELL_TIME_MAX;
- }
-
- /* Set passive dwell time (default is 250) */
- buf[bp++] = WEXT_CSCAN_PASV_DWELL_SECTION;
- if (channel != 0) {
- buf[bp++] = (u8)WEXT_CSCAN_PASV_DWELL_TIME_DEF;
- buf[bp++] = (u8)(WEXT_CSCAN_PASV_DWELL_TIME_DEF >> 8);
- } else {
- buf[bp++] = (u8)pasv_dwell;
- buf[bp++] = (u8)(pasv_dwell >> 8);
- }
-
- /* Set home dwell time (default is 40) */
- buf[bp++] = WEXT_CSCAN_HOME_DWELL_SECTION;
- buf[bp++] = (u8)WEXT_CSCAN_HOME_DWELL_TIME;
- buf[bp++] = (u8)(WEXT_CSCAN_HOME_DWELL_TIME >> 8);
-
- /* Set cscan type */
- buf[bp++] = WEXT_CSCAN_TYPE_SECTION;
- buf[bp++] = WEXT_CSCAN_TYPE_PASSIVE;
- return bp;
-}
-
-static char *wpa_driver_get_country_code(int channels)
-{
- char *country = "US"; /* WEXT_NUMBER_SCAN_CHANNELS_FCC */
-
- if (channels == WEXT_NUMBER_SCAN_CHANNELS_ETSI)
- country = "EU";
- else if( channels == WEXT_NUMBER_SCAN_CHANNELS_MKK1)
- country = "JP";
- return country;
-}
-
-static int wpa_driver_set_backgroundscan_params(void *priv)
-{
- struct wpa_driver_wext_data *drv = priv;
- struct wpa_supplicant *wpa_s;
- struct iwreq iwr;
- int ret = 0, i = 0, bp;
- char buf[WEXT_PNO_MAX_COMMAND_SIZE];
- struct wpa_ssid *ssid_conf;
-
- if (drv == NULL) {
- wpa_printf(MSG_ERROR, "%s: drv is NULL. Exiting", __func__);
- return -1;
- }
- if (drv->ctx == NULL) {
- wpa_printf(MSG_ERROR, "%s: drv->ctx is NULL. Exiting", __func__);
- return -1;
- }
- wpa_s = (struct wpa_supplicant *)(drv->ctx);
- if (wpa_s->conf == NULL) {
- wpa_printf(MSG_ERROR, "%s: wpa_s->conf is NULL. Exiting", __func__);
- return -1;
- }
- ssid_conf = wpa_s->conf->ssid;
-
- bp = WEXT_PNOSETUP_HEADER_SIZE;
- os_memcpy(buf, WEXT_PNOSETUP_HEADER, bp);
- buf[bp++] = WEXT_PNO_TLV_PREFIX;
- buf[bp++] = WEXT_PNO_TLV_VERSION;
- buf[bp++] = WEXT_PNO_TLV_SUBVERSION;
- buf[bp++] = WEXT_PNO_TLV_RESERVED;
-
- while ((i < WEXT_PNO_AMOUNT) && (ssid_conf != NULL)) {
- /* Check that there is enough space needed for 1 more SSID, the other sections and null termination */
- if ((bp + WEXT_PNO_SSID_HEADER_SIZE + IW_ESSID_MAX_SIZE + WEXT_PNO_NONSSID_SECTIONS_SIZE + 1) >= (int)sizeof(buf))
- break;
- if ((!ssid_conf->disabled) && (ssid_conf->ssid_len <= IW_ESSID_MAX_SIZE)){
- wpa_printf(MSG_DEBUG, "For PNO Scan: %s", ssid_conf->ssid);
- buf[bp++] = WEXT_PNO_SSID_SECTION;
- buf[bp++] = ssid_conf->ssid_len;
- os_memcpy(&buf[bp], ssid_conf->ssid, ssid_conf->ssid_len);
- bp += ssid_conf->ssid_len;
- i++;
- }
- ssid_conf = ssid_conf->next;
- }
-
- buf[bp++] = WEXT_PNO_SCAN_INTERVAL_SECTION;
- os_snprintf(&buf[bp], WEXT_PNO_SCAN_INTERVAL_LENGTH + 1, "%x", WEXT_PNO_SCAN_INTERVAL);
- bp += WEXT_PNO_SCAN_INTERVAL_LENGTH;
-
- buf[bp++] = WEXT_PNO_REPEAT_SECTION;
- os_snprintf(&buf[bp], WEXT_PNO_REPEAT_LENGTH + 1, "%x", WEXT_PNO_REPEAT);
- bp += WEXT_PNO_REPEAT_LENGTH;
-
- buf[bp++] = WEXT_PNO_MAX_REPEAT_SECTION;
- os_snprintf(&buf[bp], WEXT_PNO_MAX_REPEAT_LENGTH + 1, "%x", WEXT_PNO_MAX_REPEAT);
- bp += WEXT_PNO_MAX_REPEAT_LENGTH + 1;
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- iwr.u.data.pointer = buf;
- iwr.u.data.length = bp;
-
- ret = ioctl(drv->ioctl_sock, SIOCSIWPRIV, &iwr);
-
- if (ret < 0) {
- wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] (pnosetup): %d", ret);
- drv->errors++;
- if (drv->errors > DRV_NUMBER_SEQUENTIAL_ERRORS) {
- drv->errors = 0;
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
- }
- } else {
- drv->errors = 0;
- }
- return ret;
-
-}
-
-int wpa_driver_wext_driver_cmd( void *priv, char *cmd, char *buf, size_t buf_len )
-{
- struct wpa_driver_wext_data *drv = priv;
- struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)(drv->ctx);
- struct iwreq iwr;
- int ret = 0, flags;
-
- wpa_printf(MSG_DEBUG, "%s %s len = %d", __func__, cmd, buf_len);
-
- if (!drv->driver_is_started && (os_strcasecmp(cmd, "START") != 0)) {
- wpa_printf(MSG_ERROR,"WEXT: Driver not initialized yet");
- return -1;
- }
-
- if (os_strcasecmp(cmd, "RSSI-APPROX") == 0) {
- os_strlcpy(cmd, RSSI_CMD, MAX_DRV_CMD_SIZE);
- } else if( os_strncasecmp(cmd, "SCAN-CHANNELS", 13) == 0 ) {
- int no_of_chan;
-
- no_of_chan = atoi(cmd + 13);
- os_snprintf(cmd, MAX_DRV_CMD_SIZE, "COUNTRY %s",
- wpa_driver_get_country_code(no_of_chan));
- } else if (os_strcasecmp(cmd, "STOP") == 0) {
- linux_set_iface_flags(drv->ioctl_sock, drv->ifname, 0);
- } else if( os_strcasecmp(cmd, "RELOAD") == 0 ) {
- wpa_printf(MSG_DEBUG,"Reload command");
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
- return ret;
- } else if( os_strcasecmp(cmd, "BGSCAN-START") == 0 ) {
- ret = wpa_driver_set_backgroundscan_params(priv);
- if (ret < 0) {
- return ret;
- }
- os_strlcpy(cmd, "PNOFORCE 1", MAX_DRV_CMD_SIZE);
- drv->bgscan_enabled = 1;
- } else if( os_strcasecmp(cmd, "BGSCAN-STOP") == 0 ) {
- os_strlcpy(cmd, "PNOFORCE 0", MAX_DRV_CMD_SIZE);
- drv->bgscan_enabled = 0;
- }
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- os_memcpy(buf, cmd, strlen(cmd) + 1);
- iwr.u.data.pointer = buf;
- iwr.u.data.length = buf_len;
-
- if( os_strncasecmp(cmd, "CSCAN", 5) == 0 ) {
- if (!wpa_s->scanning && ((wpa_s->wpa_state <= WPA_SCANNING) ||
- (wpa_s->wpa_state >= WPA_COMPLETED))) {
- iwr.u.data.length = wpa_driver_wext_set_cscan_params(buf, buf_len, cmd);
- } else {
- wpa_printf(MSG_ERROR, "Ongoing Scan action...");
- return ret;
- }
- }
-
- ret = ioctl(drv->ioctl_sock, SIOCSIWPRIV, &iwr);
-
- if (ret < 0) {
- wpa_printf(MSG_ERROR, "%s failed (%d): %s", __func__, ret, cmd);
- drv->errors++;
- if (drv->errors > DRV_NUMBER_SEQUENTIAL_ERRORS) {
- drv->errors = 0;
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
- }
- } else {
- drv->errors = 0;
- ret = 0;
- if ((os_strcasecmp(cmd, RSSI_CMD) == 0) ||
- (os_strcasecmp(cmd, LINKSPEED_CMD) == 0) ||
- (os_strcasecmp(cmd, "MACADDR") == 0) ||
- (os_strcasecmp(cmd, "GETPOWER") == 0) ||
- (os_strcasecmp(cmd, "GETBAND") == 0)) {
- ret = strlen(buf);
- } else if (os_strcasecmp(cmd, "START") == 0) {
- drv->driver_is_started = TRUE;
- linux_set_iface_flags(drv->ioctl_sock, drv->ifname, 1);
- /* os_sleep(0, WPA_DRIVER_WEXT_WAIT_US);
- wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STARTED"); */
- } else if (os_strcasecmp(cmd, "STOP") == 0) {
- drv->driver_is_started = FALSE;
- /* wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED"); */
- } else if (os_strncasecmp(cmd, "CSCAN", 5) == 0) {
- wpa_driver_wext_set_scan_timeout(priv);
- wpa_supplicant_notify_scanning(wpa_s, 1);
- }
- wpa_printf(MSG_DEBUG, "%s %s len = %d, %d", __func__, buf, ret, strlen(buf));
- }
- return ret;
-}
-
-int wpa_driver_signal_poll(void *priv, struct wpa_signal_info *si)
-{
- char buf[MAX_DRV_CMD_SIZE];
- struct wpa_driver_wext_data *drv = priv;
- char *prssi;
- int res;
-
- os_memset(si, 0, sizeof(*si));
- res = wpa_driver_wext_driver_cmd(priv, RSSI_CMD, buf, sizeof(buf));
- /* Answer: SSID rssi -Val */
- if (res < 0)
- return res;
- prssi = strcasestr(buf, RSSI_CMD);
- if (!prssi)
- return -1;
- si->current_signal = atoi(prssi + strlen(RSSI_CMD) + 1);
-
- res = wpa_driver_wext_driver_cmd(priv, LINKSPEED_CMD, buf, sizeof(buf));
- /* Answer: LinkSpeed Val */
- if (res < 0)
- return res;
- si->current_txrate = atoi(buf + strlen(LINKSPEED_CMD) + 1) * 1000;
-
- return 0;
-}
diff --git a/wpa_supplicant_8_lib/driver_cmd_wext.h b/wpa_supplicant_8_lib/driver_cmd_wext.h
deleted file mode 100644
index 116f902..0000000
--- a/wpa_supplicant_8_lib/driver_cmd_wext.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Driver interaction with extended Linux Wireless Extensions
- *
- * This software is distributed under the terms of BSD license.
- *
- */
-#ifndef DRIVER_CMD_WEXT_H
-#define DRIVER_CMD_WEXT_H
-
-#define WEXT_NUMBER_SCAN_CHANNELS_FCC 11
-#define WEXT_NUMBER_SCAN_CHANNELS_ETSI 13
-#define WEXT_NUMBER_SCAN_CHANNELS_MKK1 14
-
-#define WPA_DRIVER_WEXT_WAIT_US 400000
-#define WEXT_CSCAN_BUF_LEN 360
-#define WEXT_CSCAN_HEADER "CSCAN S\x01\x00\x00S\x00"
-#define WEXT_CSCAN_HEADER_SIZE 12
-#define WEXT_CSCAN_SSID_SECTION 'S'
-#define WEXT_CSCAN_CHANNEL_SECTION 'C'
-#define WEXT_CSCAN_NPROBE_SECTION 'N'
-#define WEXT_CSCAN_ACTV_DWELL_SECTION 'A'
-#define WEXT_CSCAN_PASV_DWELL_SECTION 'P'
-#define WEXT_CSCAN_HOME_DWELL_SECTION 'H'
-#define WEXT_CSCAN_TYPE_SECTION 'T'
-#define WEXT_CSCAN_TYPE_DEFAULT 0
-#define WEXT_CSCAN_TYPE_PASSIVE 1
-#define WEXT_CSCAN_PASV_DWELL_TIME 130
-#define WEXT_CSCAN_PASV_DWELL_TIME_DEF 250
-#define WEXT_CSCAN_PASV_DWELL_TIME_MAX 3000
-#define WEXT_CSCAN_HOME_DWELL_TIME 130
-
-#endif /* DRIVER_CMD_WEXT_H */