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)