Compare commits
13 Commits
lineage-17
...
lineage-19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ddd4779b46 | ||
|
|
c61e35d742 | ||
|
|
9cfce3a31b | ||
|
|
43f569833a | ||
|
|
0a9d93707e | ||
|
|
b6ab59993e | ||
|
|
630de9bda1 | ||
|
|
2ca7872af0 | ||
|
|
8d1788b0f1 | ||
|
|
399b3f4231 | ||
|
|
1b6053c5cd | ||
|
|
a2dd08f8d4 | ||
|
|
59c014ff95 |
@@ -1,5 +1,5 @@
|
||||
|
||||
|
||||
ifneq ($(TARGET_USES_LOCAL_QSAP),true)
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
@@ -10,9 +10,7 @@ LOCAL_MODULE:= libqsap_sdk
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED), true)
|
||||
LOCAL_VENDOR_MODULE := true
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += -DSDK_VERSION=\"0.0.1.0\"
|
||||
|
||||
@@ -61,16 +59,7 @@ ifdef WIFI_DRIVER_DEF_CONF_FILE
|
||||
LOCAL_CFLAGS += -DWIFI_DRIVER_DEF_CONF_FILE=\"$(WIFI_DRIVER_DEF_CONF_FILE)\"
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-Wno-unused-variable \
|
||||
-Wno-unused-value \
|
||||
-Wno-format \
|
||||
-Wno-sometimes-uninitialized \
|
||||
-Wno-enum-conversion \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-implicit-function-declaration
|
||||
LOCAL_CFLAGS += -Wall -Wextra -Werror
|
||||
|
||||
LOCAL_SRC_FILES := qsap_api.c \
|
||||
qsap.c
|
||||
@@ -88,3 +77,4 @@ LOCAL_MODULE := libqsap_headers
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
|
||||
LOCAL_VENDOR_MODULE := true
|
||||
include $(BUILD_HEADER_LIBRARY)
|
||||
endif
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
#define LOG_TAG "QCLDR-"
|
||||
|
||||
#include <cutils/log.h>
|
||||
#include <log/log.h>
|
||||
#include <cutils/memory.h>
|
||||
#include <cutils/misc.h>
|
||||
#include <cutils/properties.h>
|
||||
@@ -196,9 +196,7 @@ static const char DRIVER_CFG80211_MODULE_ARG[] = WIFI_CFG80211_DRIVER_MODULE_A
|
||||
|
||||
s32 wifi_qsap_load_driver(void)
|
||||
{
|
||||
s32 size;
|
||||
s32 ret = -1;
|
||||
s32 retry;
|
||||
|
||||
|
||||
if (system(SDIO_POLLING_ON)) {
|
||||
@@ -293,7 +291,6 @@ s32 qsap_send_init_ap(void)
|
||||
int s, ret;
|
||||
struct iwreq wrq;
|
||||
s32 status = eSUCCESS;
|
||||
u32 *params = (u32 *)&wrq.u;
|
||||
|
||||
/* Equivalent to: iwpriv wlan0 initAP */
|
||||
if ((s = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
|
||||
@@ -321,7 +318,6 @@ s32 qsap_send_exit_ap(void)
|
||||
int s, ret;
|
||||
struct iwreq wrq;
|
||||
s32 status = eSUCCESS;
|
||||
u32 *params = (u32 *)&wrq.u;
|
||||
|
||||
/* Equivalent to: iwpriv wlan0 exitAP */
|
||||
if ((s = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
|
||||
@@ -391,7 +387,6 @@ s32 wifi_qsap_stop_bss(void)
|
||||
s8 *iface;
|
||||
s32 len = 128;
|
||||
struct iwreq wrq;
|
||||
struct iw_priv_args *priv_ptr;
|
||||
|
||||
if(ENABLE != is_softap_enabled()) {
|
||||
ret = eERR_BSS_NOT_STARTED;
|
||||
@@ -423,7 +418,7 @@ s32 wifi_qsap_stop_bss(void)
|
||||
close(sock);
|
||||
|
||||
if (ret) {
|
||||
ALOGE("IOCTL stopbss failed: %ld", ret);
|
||||
ALOGE("IOCTL stopbss failed: %d", ret);
|
||||
ret = eERR_STOP_BSS;
|
||||
} else {
|
||||
ALOGD("STOP BSS ISSUED");
|
||||
@@ -483,7 +478,6 @@ s32 commit(void)
|
||||
s32 wifi_qsap_start_softap()
|
||||
{
|
||||
s32 retry = 4;
|
||||
FILE * fp;
|
||||
|
||||
ALOGD("Starting Soft AP...\n");
|
||||
|
||||
@@ -708,3 +702,45 @@ s32 wifi_qsap_stop_wigig_softap(void)
|
||||
usleep(AP_BSS_STOP_DELAY);
|
||||
return eSUCCESS;
|
||||
}
|
||||
|
||||
s32 wifi_qsap_set_tx_power(s32 tx_power)
|
||||
{
|
||||
#define QCSAP_IOCTL_SET_MAX_TX_POWER (SIOCIWFIRSTPRIV + 22)
|
||||
s32 sock;
|
||||
s32 ret = eERR_SET_TX_POWER;
|
||||
s8 interface[128];
|
||||
s8 *iface;
|
||||
s32 len = 128;
|
||||
struct iwreq wrq;
|
||||
|
||||
if(NULL == (iface = qsap_get_config_value(CONFIG_FILE, &qsap_str[STR_INTERFACE], interface, (u32*)&len))) {
|
||||
ALOGE("%s :interface error \n", __func__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Issue QCSAP_IOCTL_SET_MAX_TX_POWER ioctl */
|
||||
sock = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (sock < 0) {
|
||||
ALOGE("%s :socket error \n", __func__);
|
||||
return eERR_SET_TX_POWER;
|
||||
}
|
||||
|
||||
strlcpy(wrq.ifr_name, iface, sizeof(wrq.ifr_name));
|
||||
wrq.u.data.length = sizeof(s32);
|
||||
wrq.u.data.pointer = &tx_power;
|
||||
wrq.u.data.flags = 0;
|
||||
|
||||
ret = ioctl(sock, QCSAP_IOCTL_SET_MAX_TX_POWER, &wrq);
|
||||
close(sock);
|
||||
|
||||
if (ret) {
|
||||
ALOGE("%s :IOCTL set tx power failed: %d\n", __func__, ret);
|
||||
ret = eERR_SET_TX_POWER;
|
||||
} else {
|
||||
ALOGD("%s :IOCTL set tx power issued\n", __func__);
|
||||
ret = eSUCCESS;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ s32 wifi_qsap_start_wigig_softap(void);
|
||||
s32 wifi_qsap_stop_wigig_softap(void);
|
||||
s32 wifi_qsap_reload_softap(void);
|
||||
s32 wifi_qsap_unload_wifi_sta_driver(void);
|
||||
s32 wifi_qsap_set_tx_power(s32 tx_power);
|
||||
|
||||
#ifdef QCOM_WLAN_CONCURRENCY
|
||||
s32 wifi_qsap_start_softap_in_concurrency(void);
|
||||
|
||||
@@ -67,10 +67,12 @@
|
||||
#define LOG_TAG "QCSDK"
|
||||
|
||||
#include <cutils/properties.h>
|
||||
#include <cutils/log.h>
|
||||
#include <log/log.h>
|
||||
|
||||
#define SKIP_BLANK_SPACE(x) {while(*x != '\0') { if((*x == ' ') || (*x == '\t')) x++; else break; }}
|
||||
|
||||
#define UNUSED __attribute__ ((unused))
|
||||
|
||||
/** If this variable is enabled, the soft AP is reloaded, after the commit
|
||||
* command is received */
|
||||
static volatile int gIniUpdated = 0;
|
||||
@@ -91,7 +93,8 @@ s8 *Cmd_req[eCMD_REQ_LAST] = {
|
||||
s8 *Conf_req[CONF_REQ_LAST] = {
|
||||
"dual2g",
|
||||
"dual5g",
|
||||
"owe"
|
||||
"owe",
|
||||
"60g",
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -188,6 +191,9 @@ static struct Command cmd_list[eCMD_LAST] = {
|
||||
{ "deny_mac_file", NULL },
|
||||
{ "owe_transition_ifname", NULL },
|
||||
{ "sae_require_mfp", NULL },
|
||||
{ "ieee80211ax", NULL },
|
||||
{ "enable_edmg", NULL },
|
||||
{ "edmg_channel", NULL },
|
||||
|
||||
};
|
||||
|
||||
@@ -215,7 +221,7 @@ struct Command qsap_str[eSTR_LAST] = {
|
||||
|
||||
/** Supported operating mode */
|
||||
char *hw_mode[HW_MODE_UNKNOWN] = {
|
||||
"b", "g", "n", "g-only", "n-only", "a", "any"
|
||||
"b", "g", "n", "g-only", "n-only", "a", "any", "ad"
|
||||
};
|
||||
|
||||
/** configuration file path */
|
||||
@@ -344,7 +350,7 @@ static s32 qsap_write_cfg(s8 *pfile, struct Command * pcmd, s8 *pVal, s8 *presp,
|
||||
s8 buf[MAX_CONF_LINE_LEN+1];
|
||||
s16 len, result = FALSE;
|
||||
|
||||
ALOGD("cmd=%s, Val:%s, INI:%ld \n", pcmd->name, pVal, inifile);
|
||||
ALOGD("cmd=%s, Val:%s, INI:%d \n", pcmd->name, pVal, inifile);
|
||||
|
||||
/** Open the configuration file */
|
||||
fcfg = fopen(pfile, "r");
|
||||
@@ -618,7 +624,7 @@ static void qsap_set_security_mode(s8 *pfile, u32 sec_mode, s8 *presp, u32 *plen
|
||||
}
|
||||
else {
|
||||
/** WPA, WPA2 and mixed-mode security */
|
||||
u16 wpa_val;
|
||||
u16 wpa_val = 0;
|
||||
u32 tmp = *plen;
|
||||
|
||||
wep = DISABLE;
|
||||
@@ -1033,7 +1039,7 @@ static void qsap_get_mac_list(s8 *fconfile, esap_cmd_t cNum, s8 *presp, u32 *ple
|
||||
FILE *fp;
|
||||
u32 len_remain;
|
||||
s8 *pfile, *pOut;
|
||||
esap_cmd_t sNum;
|
||||
esap_str_t sNum;
|
||||
int cnt = 0;
|
||||
|
||||
/** Identify the allow or deny file */
|
||||
@@ -1187,7 +1193,7 @@ static void qsap_read_wps_state(s8 *presp, u32 *plen)
|
||||
status = (atoi(pstate) == WPS_STATE_ENABLE) ? ENABLE : DISABLE;
|
||||
}
|
||||
|
||||
*plen = qsap_scnprintf(presp, *plen, "success %s=%ld", cmd_list[eCMD_WPS_STATE].name, status);
|
||||
*plen = qsap_scnprintf(presp, *plen, "success %s=%d", cmd_list[eCMD_WPS_STATE].name, status);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -1237,7 +1243,7 @@ int qsap_get_operating_channel(s32 *pchan)
|
||||
|
||||
ALOGE("Recv len :%d \n", wrq.u.data.length);
|
||||
*pchan = *(int *)(&wrq.u.name[0]);
|
||||
ALOGE("Operating channel :%ld \n", *pchan);
|
||||
ALOGE("Operating channel :%d \n", *pchan);
|
||||
close(sock);
|
||||
return eSUCCESS;
|
||||
|
||||
@@ -1259,7 +1265,6 @@ int qsap_get_sap_auto_channel_selection(s32 *pautochan)
|
||||
s8 *pif;
|
||||
int ret;
|
||||
sap_auto_channel_info sap_autochan_info;
|
||||
s32 *pchan;
|
||||
|
||||
if(ENABLE != is_softap_enabled()) {
|
||||
ALOGE("%s :is_softap_enabled() goto error \n", __func__);
|
||||
@@ -1301,7 +1306,7 @@ int qsap_get_sap_auto_channel_selection(s32 *pautochan)
|
||||
|
||||
ALOGD("Recv len :%d \n", wrq.u.data.length);
|
||||
*pautochan = *(int *)(&wrq.u.name[0]);
|
||||
ALOGD("Sap auto channel selection pautochan=%ld \n", *pautochan);
|
||||
ALOGD("Sap auto channel selection pautochan=%d \n", *pautochan);
|
||||
close(sock);
|
||||
return eSUCCESS;
|
||||
|
||||
@@ -1424,7 +1429,7 @@ int qsap_set_channel_range(s8 *buf)
|
||||
u32 len = MAX_CONF_LINE_LEN;
|
||||
s8 *pif;
|
||||
s8 *temp;
|
||||
int ret, i;
|
||||
int ret;
|
||||
sap_channel_info sap_chan_range;
|
||||
sta_channel_info sta_chan_range;
|
||||
|
||||
@@ -1502,9 +1507,8 @@ error:
|
||||
return eERR_SET_CHAN_RANGE;
|
||||
}
|
||||
|
||||
int qsap_read_channel(s8 *pfile, struct Command *pcmd, s8 *presp, u32 *plen, s8 *pvar)
|
||||
int qsap_read_channel(UNUSED s8 *pfile, struct Command *pcmd, s8 *presp, u32 *plen, UNUSED s8 *pvar)
|
||||
{
|
||||
s8 *pval;
|
||||
s32 chan;
|
||||
u32 len = *plen;
|
||||
|
||||
@@ -1518,12 +1522,10 @@ int qsap_read_channel(s8 *pfile, struct Command *pcmd, s8 *presp, u32 *plen, s8
|
||||
return eSUCCESS;
|
||||
}
|
||||
|
||||
int qsap_read_auto_channel(struct Command *pcmd, s8 *presp, u32 *plen)
|
||||
int qsap_read_auto_channel(UNUSED struct Command *pcmd, s8 *presp, u32 *plen)
|
||||
{
|
||||
s8 *pval, *pautoval;
|
||||
s32 pautochan;
|
||||
u32 len = *plen;
|
||||
int autochan;
|
||||
|
||||
ALOGE("%s :\n", __func__);
|
||||
|
||||
@@ -1553,7 +1555,7 @@ static int qsap_mac_to_macstr(s8 *pmac, u32 slen, s8 *pmstr, u32 *plen)
|
||||
}
|
||||
|
||||
if(totlen > 0) {
|
||||
*pmstr--;
|
||||
pmstr--;
|
||||
totlen--;
|
||||
}
|
||||
*pmstr = '\0';
|
||||
@@ -1658,7 +1660,7 @@ static void qsap_read_wep_key(s8 *pfile, struct Command *pcmd, s8 *presp, u32 *p
|
||||
pkey++;
|
||||
pwep++;
|
||||
}
|
||||
*pkey--;
|
||||
pkey--;
|
||||
*pkey = '\0';
|
||||
*plen -= 2;
|
||||
}
|
||||
@@ -1673,8 +1675,7 @@ void qsap_read_ap_stats(s8 *presp, u32 *plen)
|
||||
s8 interface[MAX_CONF_LINE_LEN];
|
||||
u32 len = MAX_CONF_LINE_LEN;
|
||||
s8 *pif;
|
||||
s8 *pbuf, *pout;
|
||||
u32 tlen;
|
||||
s8 *pbuf;
|
||||
|
||||
if(ENABLE != is_softap_enabled()) {
|
||||
*plen = qsap_scnprintf(presp, *plen, "%s", ERR_SOFTAP_NOT_STARTED);
|
||||
@@ -1741,7 +1742,7 @@ void qsap_read_autoshutoff(s8 *presp, u32 *plen)
|
||||
time = time / 60; /** Convert seconds to minutes */
|
||||
}
|
||||
|
||||
*plen = qsap_scnprintf(presp, *plen, "success %s=%ld", cmd_list[eCMD_AP_AUTOSHUTOFF].name, time);
|
||||
*plen = qsap_scnprintf(presp, *plen, "success %s=%d", cmd_list[eCMD_AP_AUTOSHUTOFF].name, time);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -1766,7 +1767,6 @@ static void qsap_get_from_config(esap_cmd_t cNum, s8 *presp, u32 *plen)
|
||||
{
|
||||
u32 len;
|
||||
int status;
|
||||
s8 * pval;
|
||||
|
||||
switch(cNum) {
|
||||
case eCMD_ENABLE_SOFTAP:
|
||||
@@ -2474,7 +2474,7 @@ static int qsap_set_channel(s32 channel, s8 *tbuf, u32 *tlen)
|
||||
}
|
||||
|
||||
end:
|
||||
qsap_scnprintf(schan, sizeof(schan), "%ld", channel);
|
||||
qsap_scnprintf(schan, sizeof(schan), "%d", channel);
|
||||
|
||||
return qsap_write_cfg(pcfg, &cmd_list[eCMD_CHAN], schan, tbuf, tlen, HOSTAPD_CONF_QCOM_FILE);
|
||||
}
|
||||
@@ -2482,11 +2482,7 @@ end:
|
||||
static int qsap_set_operating_mode(s32 mode, s8 *pmode, int pmode_len, s8 *tbuf, u32 *tlen)
|
||||
{
|
||||
u32 ulen;
|
||||
s8 *pcfgval;
|
||||
s32 channel;
|
||||
s8 sconf[MAX_INT_STR+1];
|
||||
s8 *pcfg = pconffile;
|
||||
s32 rate_idx;
|
||||
s8 ieee11n_enable[] = "1";
|
||||
s8 ieee11n_disable[] = "0";
|
||||
|
||||
@@ -2515,6 +2511,10 @@ static int qsap_set_operating_mode(s32 mode, s8 *pmode, int pmode_len, s8 *tbuf,
|
||||
ulen = *tlen;
|
||||
qsap_write_cfg(pcfg, &cmd_list[eCMD_IEEE80211N],ieee11n_disable, tbuf, &ulen, HOSTAPD_CONF_QCOM_FILE);
|
||||
break;
|
||||
case HW_MODE_AD:
|
||||
/** For 802.11ad, disable the 802.11 HT */
|
||||
qsap_change_cfg(pcfg, &cmd_list[eCMD_HT_CAPAB], DISABLE);
|
||||
break;
|
||||
}
|
||||
if(mode == HW_MODE_G_ONLY || mode == HW_MODE_N_ONLY || mode == HW_MODE_N ) {
|
||||
qsap_scnprintf(pmode, pmode_len, "%s",hw_mode[HW_MODE_G]);
|
||||
@@ -2549,7 +2549,7 @@ static int qsap_set_data_rate(s32 drate_idx, s8 *presp, u32 *plen)
|
||||
goto end;
|
||||
}
|
||||
|
||||
qsap_scnprintf(sconf, sizeof(sconf), "%ld", drate_idx);
|
||||
qsap_scnprintf(sconf, sizeof(sconf), "%d", drate_idx);
|
||||
|
||||
/** Update the rate index in the configuration */
|
||||
return qsap_write_cfg(fIni, &qsap_str[STR_DATA_RATE_IN_INI], sconf, presp, plen, INI_CONF_FILE);
|
||||
@@ -2605,6 +2605,9 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
} else if (!(strncmp(pcmd, Conf_req[CONF_owe], strlen(Conf_req[CONF_owe])))) {
|
||||
pcmd += strlen(Conf_req[CONF_owe]);
|
||||
SKIP_BLANK_SPACE(pcmd);
|
||||
} else if (!(strncmp(pcmd, Conf_req[CONF_60g], strlen(Conf_req[CONF_60g])))) {
|
||||
pcmd += strlen(Conf_req[CONF_60g]);
|
||||
SKIP_BLANK_SPACE(pcmd);
|
||||
} else {
|
||||
// DO NOTHING
|
||||
}
|
||||
@@ -2651,7 +2654,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration.
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
qsap_set_security_mode(pconffile, value, presp, plen);
|
||||
return;
|
||||
|
||||
@@ -2663,7 +2666,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
|
||||
if(ACL_ALLOW_LIST == value) {
|
||||
value = ENABLE;
|
||||
@@ -2754,7 +2757,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
case eCMD_PASSPHRASE:
|
||||
value = strlen(pVal);
|
||||
@@ -2778,7 +2781,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_DTIM_PERIOD:
|
||||
@@ -2788,7 +2791,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_HW_MODE:
|
||||
@@ -2817,7 +2820,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_DEFAULT_KEY:
|
||||
@@ -2827,7 +2830,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
|
||||
qsap_write_cfg(pcfg, &cmd_list[cNum], pVal, presp, plen, ini);
|
||||
|
||||
@@ -2882,7 +2885,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
|
||||
case eCMD_RESET_AP:
|
||||
value = atoi(pVal);
|
||||
ALOGE("Reset :%ld \n", value);
|
||||
ALOGE("Reset :%d \n", value);
|
||||
if(SAP_RESET_BSS == value) {
|
||||
status = wifi_qsap_stop_softap();
|
||||
if(status == eSUCCESS) {
|
||||
@@ -3008,7 +3011,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
if(TRUE != IS_VALID_WMM_STATE(value))
|
||||
goto error;
|
||||
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
case eCMD_WPS_STATE:
|
||||
value = atoi(pVal);
|
||||
@@ -3017,7 +3020,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
/** Write back the integer value. This is to avoid values like 01, 001, 0001
|
||||
* being written to the configuration
|
||||
*/
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
qsap_update_wps_config(pVal, presp, plen);
|
||||
return;
|
||||
|
||||
@@ -3029,8 +3032,8 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
value = atoi(pVal);
|
||||
if(TRUE != IS_VALID_PROTECTION(value))
|
||||
goto error;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
cNum = STR_PROT_FLAG_IN_INI;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
sNum = STR_PROT_FLAG_IN_INI;
|
||||
ini = INI_CONF_FILE;
|
||||
break;
|
||||
|
||||
@@ -3038,7 +3041,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
value = atoi(pVal);
|
||||
if(TRUE != IS_VALID_FRAG_THRESHOLD(value))
|
||||
goto error;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_REGULATORY_DOMAIN:
|
||||
@@ -3047,14 +3050,14 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
if(TRUE != IS_VALID_802DOT11D_STATE(value))
|
||||
goto error;
|
||||
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_RTS_THRESHOLD:
|
||||
value = atoi(pVal);
|
||||
if(TRUE != IS_VALID_RTS_THRESHOLD(value))
|
||||
goto error;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_GTK_TIMEOUT:
|
||||
@@ -3068,8 +3071,8 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
value = atoi(pVal);
|
||||
if(TRUE != IS_VALID_TX_POWER(value))
|
||||
goto error;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
cNum = STR_TX_POWER_IN_INI;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
sNum = STR_TX_POWER_IN_INI;
|
||||
ini = INI_CONF_FILE;
|
||||
break;
|
||||
|
||||
@@ -3102,8 +3105,8 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
goto error;
|
||||
/* copy a larger value back to pVal. Please pay special care
|
||||
* in caller to make sure that the buffer has sufficient size. */
|
||||
qsap_scnprintf(pVal, MAX_INT_STR, "%ld", value*60);
|
||||
cNum = STR_AP_AUTOSHUTOFF;
|
||||
qsap_scnprintf(pVal, MAX_INT_STR, "%d", value*60);
|
||||
sNum = STR_AP_AUTOSHUTOFF;
|
||||
ini = INI_CONF_FILE;
|
||||
break;
|
||||
|
||||
@@ -3112,8 +3115,8 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
if(TRUE != IS_VALID_ENERGY_DETECT_TH(value))
|
||||
goto error;
|
||||
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
cNum = STR_AP_ENERGY_DETECT_TH;
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
sNum = STR_AP_ENERGY_DETECT_TH;
|
||||
ini = INI_CONF_FILE;
|
||||
break;
|
||||
|
||||
@@ -3122,7 +3125,7 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
if(TRUE != IS_VALID_DFS_STATE(value))
|
||||
goto error;
|
||||
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value);
|
||||
qsap_scnprintf(pVal, strlen(pVal)+1, "%d", value);
|
||||
break;
|
||||
|
||||
case eCMD_SET_CHANNEL_RANGE:
|
||||
@@ -3141,8 +3144,8 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
}
|
||||
|
||||
if(ini == INI_CONF_FILE) {
|
||||
ALOGD("WRITE TO INI FILE :%s\n", qsap_str[cNum].name);
|
||||
qsap_write_cfg(fIni, &qsap_str[cNum], pVal, presp, plen, ini);
|
||||
ALOGD("WRITE TO INI FILE :%s\n", qsap_str[sNum].name);
|
||||
qsap_write_cfg(fIni, &qsap_str[sNum], pVal, presp, plen, ini);
|
||||
}
|
||||
else {
|
||||
qsap_write_cfg(pcfg, &cmd_list[cNum], pVal, presp, plen, ini);
|
||||
@@ -3170,7 +3173,7 @@ error:
|
||||
*/
|
||||
void qsap_hostd_exec_cmd(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
{
|
||||
ALOGD("CMD INPUT [%s][%lu]\n", pcmd, *plen);
|
||||
ALOGD("CMD INPUT [%s][%u]\n", pcmd, *plen);
|
||||
/* Skip any blank spaces */
|
||||
SKIP_BLANK_SPACE(pcmd);
|
||||
|
||||
@@ -3181,6 +3184,8 @@ void qsap_hostd_exec_cmd(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
pconffile = CONFIG_FILE_5G;
|
||||
} else if (!(strncmp(pcmd+4, Conf_req[CONF_owe], strlen(Conf_req[CONF_owe])))) {
|
||||
pconffile = CONFIG_FILE_OWE;
|
||||
} else if (!(strncmp(pcmd+4, Conf_req[CONF_60g], strlen(Conf_req[CONF_60g])))) {
|
||||
pconffile = CONFIG_FILE_60G;
|
||||
} else {
|
||||
pconffile = CONFIG_FILE;
|
||||
}
|
||||
@@ -3200,7 +3205,7 @@ void qsap_hostd_exec_cmd(s8 *pcmd, s8 *presp, u32 *plen)
|
||||
*plen = qsap_scnprintf(presp, *plen, "%s", ERR_INVALIDREQ);
|
||||
}
|
||||
|
||||
ALOGD("CMD OUTPUT [%s]\nlen :%lu\n\n", presp, *plen);
|
||||
ALOGD("CMD OUTPUT [%s]\nlen :%u\n\n", presp, *plen);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -3239,10 +3244,11 @@ int qsapsetSoftap(int argc, char *argv[])
|
||||
ALOGD("ARG: %d - %s\n", i+1, argv[i]);
|
||||
}
|
||||
|
||||
// check if 2nd arg is dual2g/dual5g
|
||||
// check if 2nd arg is dual2g/dual5g/owe/60g
|
||||
if (argc > 2
|
||||
&& (strncmp(argv[2], Conf_req[CONF_2g], 4) == 0
|
||||
|| strncmp(argv[2], Conf_req[CONF_owe], 3) == 0)) {
|
||||
|| strncmp(argv[2], Conf_req[CONF_owe], 3) == 0
|
||||
|| strncmp(argv[2], Conf_req[CONF_60g], 3) == 0)) {
|
||||
snprintf(setCmd, SET_BUF_LEN, "set %s", argv[2]);
|
||||
offset = 1;
|
||||
argc--;
|
||||
|
||||
@@ -77,7 +77,8 @@ enum error_val {
|
||||
eERR_LOAD_FAILED_SDIOIF,
|
||||
eERR_LOAD_FAILED_SOFTAP,
|
||||
eERR_SET_CHAN_RANGE,
|
||||
eERR_GET_AUTO_CHAN
|
||||
eERR_GET_AUTO_CHAN,
|
||||
eERR_SET_TX_POWER
|
||||
};
|
||||
|
||||
#ifndef WIFI_DRIVER_CONF_FILE
|
||||
@@ -91,6 +92,7 @@ enum error_val {
|
||||
/** Configuration file name for SAP+SAP*/
|
||||
#define CONFIG_FILE_2G "/data/vendor/wifi/hostapd/hostapd_dual2g.conf"
|
||||
#define CONFIG_FILE_5G "/data/vendor/wifi/hostapd/hostapd_dual5g.conf"
|
||||
#define CONFIG_FILE_60G "/data/vendor/wifi/hostapd/hostapd_60g.conf"
|
||||
|
||||
/** Configuration file name for OWE-transition */
|
||||
#define CONFIG_FILE_OWE "/data/vendor/wifi/hostapd/hostapd_owe.conf"
|
||||
@@ -256,6 +258,7 @@ enum eConf_req {
|
||||
CONF_2g = 0,
|
||||
CONF_5g = 1,
|
||||
CONF_owe = 2,
|
||||
CONF_60g = 3,
|
||||
|
||||
CONF_REQ_LAST
|
||||
};
|
||||
@@ -361,6 +364,11 @@ typedef enum esap_cmd {
|
||||
eCMD_OWE_TRANS_IFNAME = 83,
|
||||
eCMD_SAE_REQUIRE_MPF = 84,
|
||||
|
||||
eCMD_IEEE80211AX = 85,
|
||||
|
||||
eCMD_ENABLE_EDMG = 86,
|
||||
eCMD_EDMG_CHANNEL = 87,
|
||||
|
||||
eCMD_LAST /** New command numbers should be added above this */
|
||||
} esap_cmd_t;
|
||||
|
||||
@@ -425,6 +433,7 @@ enum oper_mode {
|
||||
HW_MODE_N_ONLY = 4,
|
||||
HW_MODE_A = 5,
|
||||
HW_MODE_ANY = 6,
|
||||
HW_MODE_AD = 7,
|
||||
|
||||
HW_MODE_UNKNOWN
|
||||
};
|
||||
@@ -535,7 +544,7 @@ typedef struct sap_auto_channel_info {
|
||||
|
||||
/** Validate the pairwise encryption */
|
||||
#define IS_VALID_PAIRWISE(x) (((!strcmp(x, "TKIP")) || (!strcmp(x, "CCMP")) || \
|
||||
(!strcmp(x, "TKIP CCMP")) || (!strcmp(x, "CCMP TKIP"))) ? TRUE : FALSE)
|
||||
(!strcmp(x, "TKIP CCMP")) || (!strcmp(x, "CCMP TKIP")) || (!strcmp(x, "GCMP"))) ? TRUE : FALSE)
|
||||
|
||||
/** Validate the WMM status */
|
||||
#define IS_VALID_WMM_STATE(x) (((x >= WMM_AUTO_IN_INI) && (x <= WMM_DISABLED_IN_INI)) ? TRUE: FALSE)
|
||||
|
||||
Reference in New Issue
Block a user