wlan: Modify hdd_string_to_u8_array to pass separator
Add separator as a parameter to the hdd_string_to_u8_array api.
Change-Id: Ic3a28260dc4cb9144230947f2f106016ccf4d70c
CRs-Fixed: 1093144
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 8bcbee0..062cc59 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2773,7 +2773,7 @@
/* DHCP Server IP*/
#define CFG_DHCP_SERVER_IP_NAME "gDHCPServerIP"
-#define CFG_DHCP_SERVER_IP_DEFAULT "192,168,1,2"
+#define CFG_DHCP_SERVER_IP_DEFAULT "192.168.1.2"
#endif /* DHCP_SERVER_OFFLOAD */
/*
@@ -3538,7 +3538,7 @@
tANI_BOOLEAN hdd_is_okc_mode_enabled(hdd_context_t *pHddCtx);
VOS_STATUS hdd_string_to_u8_array(char *str, tANI_U8 *intArray, tANI_U8 *len,
- tANI_U8 intArrayMaxLen);
+ tANI_U8 intArrayMaxLen, char *seperator);
#define VAR_OFFSET( _Struct, _Var ) (offsetof(_Struct, _Var))
#define VAR_SIZE( _Struct, _Var ) (sizeof(((_Struct *)0)->_Var))
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index aedea63..29ee032 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -4909,7 +4909,8 @@
}
VOS_STATUS hdd_string_to_u8_array(char *str, tANI_U8 *intArray,
- tANI_U8 *len, tANI_U8 intArrayMaxLen)
+ tANI_U8 *len, tANI_U8 intArrayMaxLen,
+ char *seperator)
{
char *s = str;
@@ -4926,10 +4927,12 @@
//Any other return value means error. Ignore it.
if( sscanf(s, "%d", &val ) == 1 )
{
+ if (val > 255 || val < 0)
+ return VOS_STATUS_E_FAILURE;
intArray[*len] = (tANI_U8) val;
*len += 1;
}
- s = strpbrk( s, "," );
+ s = strpbrk( s, seperator);
if( s )
s++;
}
@@ -6252,7 +6255,7 @@
hdd_string_to_u8_array( pConfig->neighborScanChanList,
smeConfig->csrConfig.neighborRoamConfig.neighborScanChanList.channelList,
&smeConfig->csrConfig.neighborRoamConfig.neighborScanChanList.numChannels,
- WNI_CFG_VALID_CHANNEL_LIST_LEN );
+ WNI_CFG_VALID_CHANNEL_LIST_LEN, "," );
#endif
smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 39c3303..3834989 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -9235,7 +9235,7 @@
hdd_string_to_u8_array(hdd_ctx->cfg_ini->dhcp_srv_ip,
srv_ip,
&num_entries,
- IPADDR_NUM_ENTRIES);
+ IPADDR_NUM_ENTRIES, ".");
if (num_entries != IPADDR_NUM_ENTRIES) {
hddLog(VOS_TRACE_LEVEL_ERROR,
"%s: incorrect IP address (%s) assigned for DHCP server!",
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index 7c9b10a..ea0c74e 100644
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -486,10 +486,10 @@
#gDHCPMaxNumClients=2
# Set DHCP server IP
-# 4th field could not be greater than 99, that is xxx,xxx,xxx,0 ~ xxx,xxx,xxx,99
+# 4th field could not be greater than 99, that is xxx.xxx.xxx.0 ~ xxx.xxx.xxx.99
# 1st field could not be within the range of 224 ~ 239 (multicast IP address)
-# 192,168,1,2(default)
-#gDHCPServerIP=192,168,1,2
+# 192.168.1.2(default)
+#gDHCPServerIP=192.168.1.2
# Set DHCP pool start Lsb
# min 100 (default)