Modified to return an exception(E_INVALID_STATE) when you try to connect to a speicif...
[framework/osp/net.git] / src / wifi / FNetWifi_WifiUtility.cpp
index ca3f811..ce9d73f 100644 (file)
@@ -52,615 +52,629 @@ _WifiUtility::~_WifiUtility(void)
 WifiAuthenticationType
 _WifiUtility::ConvertAuthType(wifi_security_type_e securityMode, wifi_encryption_type_e encryptionMode)
 {
-    WifiAuthenticationType authenticationType = WIFI_AUTHENTICATION_OPEN;
-
-    switch (securityMode)
-    {
-    case WIFI_SECURITY_TYPE_NONE:
-       authenticationType = WIFI_AUTHENTICATION_OPEN;
-        break;
-
-    case WIFI_SECURITY_TYPE_WEP:
-       authenticationType = WIFI_AUTHENTICATION_SHARED;
-        break;
-
-    case WIFI_SECURITY_TYPE_EAP:
-
-        if (encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP)
-        {
-            authenticationType = WIFI_AUTHENTICATION_WPA;
-        }
-        else if (encryptionMode == WIFI_ENCRYPTION_TYPE_AES
-                       || encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED)
-        {
-            authenticationType = WIFI_AUTHENTICATION_WPA2;
-        }
-        break;
-
-    case WIFI_SECURITY_TYPE_WPA_PSK:
-        if (encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP)
-        {
-            authenticationType = WIFI_AUTHENTICATION_WPA_PSK;
-        }
-        else if (encryptionMode == WIFI_ENCRYPTION_TYPE_AES)
-       {
-               authenticationType = WIFI_AUTHENTICATION_WPA2_PSK;
-       }
-        else
-       {
-               authenticationType = WIFI_AUTHENTICATION_WPA_WPA2_MIXED_PSK;
-       }
-        break;
-    default:
-        break;
-    }
-
-    return authenticationType;
+       WifiAuthenticationType authenticationType = WIFI_AUTHENTICATION_OPEN;
+
+       switch (securityMode)
+       {
+       case WIFI_SECURITY_TYPE_NONE:
+               authenticationType = WIFI_AUTHENTICATION_OPEN;
+               break;
+
+       case WIFI_SECURITY_TYPE_WEP:
+               authenticationType = WIFI_AUTHENTICATION_SHARED;
+               break;
+
+       case WIFI_SECURITY_TYPE_EAP:
+
+               if (encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP)
+               {
+                       authenticationType = WIFI_AUTHENTICATION_WPA;
+               }
+               else if (encryptionMode == WIFI_ENCRYPTION_TYPE_AES
+                               || encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED)
+               {
+                       authenticationType = WIFI_AUTHENTICATION_WPA2;
+               }
+               break;
+
+       case WIFI_SECURITY_TYPE_WPA_PSK:
+               if (encryptionMode == WIFI_ENCRYPTION_TYPE_TKIP)
+               {
+                       authenticationType = WIFI_AUTHENTICATION_WPA_PSK;
+               }
+               else if (encryptionMode == WIFI_ENCRYPTION_TYPE_AES)
+               {
+                       authenticationType = WIFI_AUTHENTICATION_WPA2_PSK;
+               }
+               else
+               {
+                       authenticationType = WIFI_AUTHENTICATION_WPA_WPA2_MIXED_PSK;
+               }
+               break;
+       default:
+               break;
+       }
+
+       return authenticationType;
 }
 
 wifi_security_type_e
 _WifiUtility::ConvertSecurityType(WifiAuthenticationType authMode)
 {
-    wifi_security_type_e authenticationType = WIFI_SECURITY_TYPE_NONE;
-
-    switch (authMode)
-    {
-    case WIFI_AUTHENTICATION_OPEN:
-    {
-        authenticationType = WIFI_SECURITY_TYPE_NONE;
-        break;
-    }
-    case WIFI_AUTHENTICATION_SHARED:
-    {
-        authenticationType = WIFI_SECURITY_TYPE_WEP;
-        break;
-    }
-    case WIFI_AUTHENTICATION_WPA:
-    case WIFI_AUTHENTICATION_WPA2:
-    {
-        authenticationType = WIFI_SECURITY_TYPE_EAP;
-        break;
-    }
-    case WIFI_AUTHENTICATION_WPA_PSK:
-    {
-        authenticationType = WIFI_SECURITY_TYPE_WPA_PSK;
-        break;
-    }
-    case WIFI_AUTHENTICATION_WPA2_PSK:
-    {
-        authenticationType = WIFI_SECURITY_TYPE_WPA_PSK;
-        break;
-    }
-    default:
-        break;
-    }
-
-    return authenticationType;
+       wifi_security_type_e authenticationType = WIFI_SECURITY_TYPE_NONE;
+
+       switch (authMode)
+       {
+       case WIFI_AUTHENTICATION_OPEN:
+       {
+               authenticationType = WIFI_SECURITY_TYPE_NONE;
+               break;
+       }
+       case WIFI_AUTHENTICATION_SHARED:
+       {
+               authenticationType = WIFI_SECURITY_TYPE_WEP;
+               break;
+       }
+       case WIFI_AUTHENTICATION_WPA:
+       case WIFI_AUTHENTICATION_WPA2:
+       {
+               authenticationType = WIFI_SECURITY_TYPE_EAP;
+               break;
+       }
+       case WIFI_AUTHENTICATION_WPA_PSK:
+       {
+               authenticationType = WIFI_SECURITY_TYPE_WPA_PSK;
+               break;
+       }
+       case WIFI_AUTHENTICATION_WPA2_PSK:
+       {
+               authenticationType = WIFI_SECURITY_TYPE_WPA_PSK;
+               break;
+       }
+       default:
+               break;
+       }
+
+       return authenticationType;
 }
 
 WifiRadioChannel
 _WifiUtility::ConvertRadioChannel(int frequency)
 {
-    WifiRadioChannel radioChannel = WIFI_RADIO_CHANNEL_UNKNOWN;
-
-    switch (frequency)
-    {
-    case 2412:
-        radioChannel = WIFI_RADIO_CHANNEL_1;
-        break;
-    case 2417:
-        radioChannel = WIFI_RADIO_CHANNEL_2;
-        break;
-    case 2422:
-        radioChannel = WIFI_RADIO_CHANNEL_3;
-        break;
-    case 2427:
-        radioChannel = WIFI_RADIO_CHANNEL_4;
-        break;
-    case 2432:
-        radioChannel = WIFI_RADIO_CHANNEL_5;
-        break;
-    case 2437:
-        radioChannel = WIFI_RADIO_CHANNEL_6;
-        break;
-    case 2442:
-        radioChannel = WIFI_RADIO_CHANNEL_7;
-        break;
-    case 2447:
-        radioChannel = WIFI_RADIO_CHANNEL_8;
-        break;
-    case 2452:
-        radioChannel = WIFI_RADIO_CHANNEL_9;
-        break;
-    case 2457:
-        radioChannel = WIFI_RADIO_CHANNEL_10;
-        break;
-    case 2462:
-        radioChannel = WIFI_RADIO_CHANNEL_11;
-        break;
-    case 2467:
-        radioChannel = WIFI_RADIO_CHANNEL_12;
-        break;
-    case 2472:
-        radioChannel = WIFI_RADIO_CHANNEL_13;
-        break;
-    case 2484:
-        radioChannel = WIFI_RADIO_CHANNEL_14;
-        break;
-    default:
-        radioChannel = WIFI_RADIO_CHANNEL_UNKNOWN;
-        break;
-    }
-
-    return radioChannel;
+       WifiRadioChannel radioChannel = WIFI_RADIO_CHANNEL_UNKNOWN;
+
+       switch (frequency)
+       {
+       case 2412:
+               radioChannel = WIFI_RADIO_CHANNEL_1;
+               break;
+       case 2417:
+               radioChannel = WIFI_RADIO_CHANNEL_2;
+               break;
+       case 2422:
+               radioChannel = WIFI_RADIO_CHANNEL_3;
+               break;
+       case 2427:
+               radioChannel = WIFI_RADIO_CHANNEL_4;
+               break;
+       case 2432:
+               radioChannel = WIFI_RADIO_CHANNEL_5;
+               break;
+       case 2437:
+               radioChannel = WIFI_RADIO_CHANNEL_6;
+               break;
+       case 2442:
+               radioChannel = WIFI_RADIO_CHANNEL_7;
+               break;
+       case 2447:
+               radioChannel = WIFI_RADIO_CHANNEL_8;
+               break;
+       case 2452:
+               radioChannel = WIFI_RADIO_CHANNEL_9;
+               break;
+       case 2457:
+               radioChannel = WIFI_RADIO_CHANNEL_10;
+               break;
+       case 2462:
+               radioChannel = WIFI_RADIO_CHANNEL_11;
+               break;
+       case 2467:
+               radioChannel = WIFI_RADIO_CHANNEL_12;
+               break;
+       case 2472:
+               radioChannel = WIFI_RADIO_CHANNEL_13;
+               break;
+       case 2484:
+               radioChannel = WIFI_RADIO_CHANNEL_14;
+               break;
+       default:
+               radioChannel = WIFI_RADIO_CHANNEL_UNKNOWN;
+               break;
+       }
+
+       return radioChannel;
 }
 
 long
 _WifiUtility::ConvertPercentagetoRssiValue(char val)
 {
-    if (val >= 75)
-    {
-        return -55;
-    }
-    else if (val > 50)
-    {
-        return -70;
-    }
-    else if (val > 25)
-    {
-        return -85;
-    }
-    else
-    {
-        return -100;
-    }
+       if (val >= 75)
+       {
+               return -55;
+       }
+       else if (val > 50)
+       {
+               return -70;
+       }
+       else if (val > 25)
+       {
+               return -85;
+       }
+       else
+       {
+               return -100;
+       }
 }
 
 long
 _WifiUtility::ConvertLeveltoRssiValue(wifi_rssi_level_e val)
 {
-    long rssiValue = 0;
-    SysLog(NID_NET_WIFI, "Enter: [Rssi Level %d]", val);
-
-    switch (val)
-    {
-    case WIFI_RSSI_LEVEL_4:
-        rssiValue = -55;
-        break;
-    case WIFI_RSSI_LEVEL_3:
-        rssiValue = -70;
-        break;
-    case WIFI_RSSI_LEVEL_2:
-        rssiValue = -85;
-        break;
-    case WIFI_RSSI_LEVEL_1:
-        rssiValue = -100;
-        break;
-    default:
-        rssiValue = 0;
-        break;
-    }
-    SysLog(NID_NET_WIFI, "Exit: [Rssi dbm %ld]", rssiValue);
-
-    return rssiValue;
+       long rssiValue = 0;
+       SysLog(NID_NET_WIFI, "Enter: [Rssi Level %d]", val);
+
+       switch (val)
+       {
+       case WIFI_RSSI_LEVEL_4:
+               rssiValue = -55;
+               break;
+       case WIFI_RSSI_LEVEL_3:
+               rssiValue = -70;
+               break;
+       case WIFI_RSSI_LEVEL_2:
+               rssiValue = -85;
+               break;
+       case WIFI_RSSI_LEVEL_1:
+               rssiValue = -100;
+               break;
+       default:
+               rssiValue = 0;
+               break;
+       }
+       SysLog(NID_NET_WIFI, "Exit: [Rssi dbm %ld]", rssiValue);
+
+       return rssiValue;
 }
 
 WifiEncryptionType
 _WifiUtility::ConvertEncryptionType(wifi_encryption_type_e encryptionMode)
 {
-    WifiEncryptionType encryptionType = WIFI_ENCRYPTION_NONE;
-
-    switch (encryptionMode)
-    {
-    case WIFI_ENCRYPTION_TYPE_NONE:
-    {
-        encryptionType = WIFI_ENCRYPTION_NONE;
-        break;
-    }
-    case WIFI_ENCRYPTION_TYPE_WEP:
-    {
-        encryptionType = WIFI_ENCRYPTION_WEP;
-        break;
-    }
-    case WIFI_ENCRYPTION_TYPE_TKIP:
-    {
-        encryptionType = WIFI_ENCRYPTION_TKIP;
-        break;
-    }
-    case WIFI_ENCRYPTION_TYPE_AES:
-    {
-        encryptionType = WIFI_ENCRYPTION_AES;
-        break;
-    }
-    case WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED:
-    {
-        encryptionType = WIFI_ENCRYPTION_TKIP_AES_MIXED;
-        break;
-    }
-    default:
-        break;
-    }
-
-    return encryptionType;
+       WifiEncryptionType encryptionType = WIFI_ENCRYPTION_NONE;
+
+       switch (encryptionMode)
+       {
+       case WIFI_ENCRYPTION_TYPE_NONE:
+       {
+               encryptionType = WIFI_ENCRYPTION_NONE;
+               break;
+       }
+       case WIFI_ENCRYPTION_TYPE_WEP:
+       {
+               encryptionType = WIFI_ENCRYPTION_WEP;
+               break;
+       }
+       case WIFI_ENCRYPTION_TYPE_TKIP:
+       {
+               encryptionType = WIFI_ENCRYPTION_TKIP;
+               break;
+       }
+       case WIFI_ENCRYPTION_TYPE_AES:
+       {
+               encryptionType = WIFI_ENCRYPTION_AES;
+               break;
+       }
+       case WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED:
+       {
+               encryptionType = WIFI_ENCRYPTION_TKIP_AES_MIXED;
+               break;
+       }
+       default:
+               break;
+       }
+
+       return encryptionType;
 }
 
 wifi_encryption_type_e
 _WifiUtility::ConvertEncryptionType(WifiEncryptionType encryptionMode)
 {
-    wifi_encryption_type_e encryptionType = WIFI_ENCRYPTION_TYPE_NONE;
-
-    switch (encryptionMode)
-    {
-    case WIFI_ENCRYPTION_NONE:
-    {
-        encryptionType = WIFI_ENCRYPTION_TYPE_NONE;
-        break;
-    }
-    case WIFI_ENCRYPTION_WEP:
-    {
-        encryptionType = WIFI_ENCRYPTION_TYPE_WEP;
-        break;
-    }
-    case WIFI_ENCRYPTION_TKIP:
-    {
-        encryptionType = WIFI_ENCRYPTION_TYPE_TKIP;
-        break;
-    }
-    case WIFI_ENCRYPTION_AES:
-    {
-        encryptionType = WIFI_ENCRYPTION_TYPE_AES;
-        break;
-    }
-    case WIFI_ENCRYPTION_TKIP_AES_MIXED:
-    {
-        encryptionType = WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED;
-        break;
-    }
-    default:
-        break;
-    }
-
-    return encryptionType;
+       wifi_encryption_type_e encryptionType = WIFI_ENCRYPTION_TYPE_NONE;
+
+       switch (encryptionMode)
+       {
+       case WIFI_ENCRYPTION_NONE:
+       {
+               encryptionType = WIFI_ENCRYPTION_TYPE_NONE;
+               break;
+       }
+       case WIFI_ENCRYPTION_WEP:
+       {
+               encryptionType = WIFI_ENCRYPTION_TYPE_WEP;
+               break;
+       }
+       case WIFI_ENCRYPTION_TKIP:
+       {
+               encryptionType = WIFI_ENCRYPTION_TYPE_TKIP;
+               break;
+       }
+       case WIFI_ENCRYPTION_AES:
+       {
+               encryptionType = WIFI_ENCRYPTION_TYPE_AES;
+               break;
+       }
+       case WIFI_ENCRYPTION_TKIP_AES_MIXED:
+       {
+               encryptionType = WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED;
+               break;
+       }
+       default:
+               break;
+       }
+
+       return encryptionType;
 }
 
 WifiEapType
 _WifiUtility::ConvertEapType(wifi_eap_type_e eapType, wifi_eap_auth_type_e eapAuthType)
 {
-    WifiEapType eapReturnType = WIFI_EAP_NONE;
-
-    switch (eapType)
-    {
-    case WIFI_EAP_TYPE_PEAP:
-        if (eapAuthType == WIFI_EAP_AUTH_TYPE_MSCHAPV2)
-        {
-            eapReturnType = WIFI_EAP_PEAP_MSCHAPV2;
-        }
-        else if(eapAuthType == WIFI_EAP_AUTH_TYPE_GTC)
-        {
-            eapReturnType = WIFI_EAP_PEAP_GTC;
-        }
-        else
-        {
-            SysLog(NID_NET_WIFI,"Not supported EAP authentication type.");
-        }
-        break;
-    case WIFI_EAP_TYPE_TLS:
-        SysLog(NID_NET_WIFI,"Not supported EAP TLS.");
-        break;
-    case WIFI_EAP_TYPE_TTLS:
-        if (eapAuthType == WIFI_EAP_AUTH_TYPE_MSCHAPV2)
-        {
-            eapReturnType = WIFI_EAP_TTLS_MSCHAPV2;
-        }
-        else
-        {
-           SysLog(NID_NET_WIFI,"Not supported EAP authentication type.");
-        }
-        break;
-    case WIFI_EAP_TYPE_SIM:
-        eapReturnType = WIFI_EAP_SIM;
-        break;
-    case WIFI_EAP_TYPE_AKA:
-        eapReturnType = WIFI_EAP_AKA;
-        break;
-    default:
-           break;
-    }
-
-    return eapReturnType;
+       WifiEapType eapReturnType = WIFI_EAP_NONE;
+
+       switch (eapType)
+       {
+       case WIFI_EAP_TYPE_PEAP:
+               if (eapAuthType == WIFI_EAP_AUTH_TYPE_MSCHAPV2)
+               {
+                       eapReturnType = WIFI_EAP_PEAP_MSCHAPV2;
+               }
+               else if(eapAuthType == WIFI_EAP_AUTH_TYPE_GTC)
+               {
+                       eapReturnType = WIFI_EAP_PEAP_GTC;
+               }
+               else
+               {
+                       SysLog(NID_NET_WIFI,"Not supported EAP authentication type.");
+               }
+               break;
+       case WIFI_EAP_TYPE_TLS:
+               SysLog(NID_NET_WIFI,"Not supported EAP TLS.");
+               break;
+       case WIFI_EAP_TYPE_TTLS:
+               if (eapAuthType == WIFI_EAP_AUTH_TYPE_MSCHAPV2)
+               {
+                       eapReturnType = WIFI_EAP_TTLS_MSCHAPV2;
+               }
+               else
+               {
+                  SysLog(NID_NET_WIFI,"Not supported EAP authentication type.");
+               }
+               break;
+       case WIFI_EAP_TYPE_SIM:
+               eapReturnType = WIFI_EAP_SIM;
+               break;
+       case WIFI_EAP_TYPE_AKA:
+               eapReturnType = WIFI_EAP_AKA;
+               break;
+       default:
+                  break;
+       }
+
+       return eapReturnType;
 }
 
 wifi_eap_type_e
 _WifiUtility::ConvertEapType(WifiEapType eapType)
 {
-    wifi_eap_type_e eapReturnType = WIFI_EAP_TYPE_PEAP;
-    switch(eapType)
-    {
-    case WIFI_EAP_SIM:
-        eapReturnType = WIFI_EAP_TYPE_SIM;
-        break;
-    case WIFI_EAP_AKA:
-        eapReturnType = WIFI_EAP_TYPE_AKA;
-        break;
-    case WIFI_EAP_TTLS_MSCHAPV2:
-        eapReturnType = WIFI_EAP_TYPE_TTLS;
-        break;
-    case WIFI_EAP_PEAP_MSCHAPV2:
-        eapReturnType = WIFI_EAP_TYPE_PEAP;
-        break;
-    case WIFI_EAP_PEAP_GTC:
-        eapReturnType = WIFI_EAP_TYPE_PEAP;
-        break;
-    case WIFI_EAP_TLS:
-        eapReturnType = WIFI_EAP_TYPE_TLS;
-        break;
-    default:
-        break;
-    }
-
-    return eapReturnType;
+       wifi_eap_type_e eapReturnType = WIFI_EAP_TYPE_PEAP;
+       switch(eapType)
+       {
+       case WIFI_EAP_SIM:
+               eapReturnType = WIFI_EAP_TYPE_SIM;
+               break;
+       case WIFI_EAP_AKA:
+               eapReturnType = WIFI_EAP_TYPE_AKA;
+               break;
+       case WIFI_EAP_TTLS_MSCHAPV2:
+               eapReturnType = WIFI_EAP_TYPE_TTLS;
+               break;
+       case WIFI_EAP_PEAP_MSCHAPV2:
+               eapReturnType = WIFI_EAP_TYPE_PEAP;
+               break;
+       case WIFI_EAP_PEAP_GTC:
+               eapReturnType = WIFI_EAP_TYPE_PEAP;
+               break;
+       case WIFI_EAP_TLS:
+               eapReturnType = WIFI_EAP_TYPE_TLS;
+               break;
+       default:
+               break;
+       }
+
+       return eapReturnType;
 }
 
 wifi_eap_auth_type_e
 _WifiUtility::ConvertEapAuthType(WifiEapType eapType)
 {
-    wifi_eap_auth_type_e eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
-    switch(eapType)
-    {
-    case WIFI_EAP_SIM:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
-        break;
-    case WIFI_EAP_AKA:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
-        break;
-    case WIFI_EAP_TTLS_MSCHAPV2:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_MSCHAPV2;
-        break;
-    case WIFI_EAP_PEAP_MSCHAPV2:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_MSCHAPV2;
-        break;
-    case WIFI_EAP_PEAP_GTC:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_GTC;
-        break;
-    case WIFI_EAP_TLS:
-        eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
-        break;
-    default:
-        break;
-    }
-    return eapAuthType;
+       wifi_eap_auth_type_e eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
+       switch(eapType)
+       {
+       case WIFI_EAP_SIM:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
+               break;
+       case WIFI_EAP_AKA:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
+               break;
+       case WIFI_EAP_TTLS_MSCHAPV2:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_MSCHAPV2;
+               break;
+       case WIFI_EAP_PEAP_MSCHAPV2:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_MSCHAPV2;
+               break;
+       case WIFI_EAP_PEAP_GTC:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_GTC;
+               break;
+       case WIFI_EAP_TLS:
+               eapAuthType = WIFI_EAP_AUTH_TYPE_NONE;
+               break;
+       default:
+               break;
+       }
+       return eapAuthType;
 }
 
 String
 _WifiUtility::ConvertMacAddress(char macAddress[])
 {
-    static  const int MAX_MAC_ADDRESS_LENGTH = 17;
-    String convertMacAddress;
-
-    for (int  i = 0; i < MAX_MAC_ADDRESS_LENGTH; i++)
-    {
-        if (macAddress[i] == ':')
-        {
-            convertMacAddress.Append('-');
-        }
-        else
-        {
-            convertMacAddress.Append(macAddress[i]);
-        }
-    }
-
-    return convertMacAddress;
+       static  const int MAX_MAC_ADDRESS_LENGTH = 17;
+       String convertMacAddress;
+
+       for (int  i = 0; i < MAX_MAC_ADDRESS_LENGTH; i++)
+       {
+               if (macAddress[i] == ':')
+               {
+                       convertMacAddress.Append('-');
+               }
+               else
+               {
+                       convertMacAddress.Append(macAddress[i]);
+               }
+       }
+
+       return convertMacAddress;
+}
+
+String
+_WifiUtility::GetBssIdFromApHandle(wifi_ap_h pApHandle)
+{
+       char* pBssid = null;
+       int error = wifi_ap_get_bssid(pApHandle, &pBssid);
+       SysTryReturn(NID_NET_WIFI, error == WIFI_ERROR_NONE && pBssid != null, String(), E_OPERATION_FAILED,
+               "[E_OPERATION_FAILED] Getting the BSSID of the AP has failed. [0x%08X].", error);
+
+       String bssId(pBssid);
+       free(pBssid);
+
+       return bssId;
 }
 
 WifiBssInfo*
-_WifiUtility::CreateWifiBssInfoInstanceN(wifi_ap_h& apHandle)
+_WifiUtility::CreateWifiBssInfoInstanceN(wifi_ap_h& pApHandle)
 {
-    unique_ptr<WifiBssInfo> pBssInfo;
-    _WifiBssInfoImpl* pBssInfoImpl = null;
-    result r = E_SUCCESS;
-    int apRes = WIFI_ERROR_NONE;
-
-    WifiSecurityInfo secuInfo;
-    _WifiSecurityInfoImpl* pSecuInfoImpl = null;
-
-    wifi_ip_config_type_e ipType = WIFI_IP_CONFIG_TYPE_NONE;
-    NetAddressScheme netIpScheme = NET_ADDRESS_SCHEME_NONE;
-    char* pAddrStr = null;
-    unique_ptr<IpAddress> pAddress;
-    wifi_proxy_type_e proxyType = WIFI_PROXY_TYPE_DIRECT;
-    NetProxyType netProxyType = NET_PROXY_TYPE_NONE;
-
-    pBssInfo.reset(_WifiBssInfoImpl::CreateWifiBssInfoN());
-    SysTryReturn(NID_NET_WIFI, pBssInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
-    pBssInfoImpl = _WifiBssInfoImpl::GetInstance(*pBssInfo);
-    pBssInfoImpl->SetBssHandle(apHandle);
-
-    // SSID
-    char* pSsid = null;
-    apRes = wifi_ap_get_essid(apHandle, &pSsid);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the SSID of the AP has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetSsid(String(pSsid));
-    free(pSsid);
-
-    // BSSID
-    char* pBssid = null;
-    apRes = wifi_ap_get_bssid(apHandle, &pBssid);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the BSSID of the AP has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetBssId(ConvertMacAddress(pBssid));
-    free(pBssid);
-
-    // Security type - Authentication type & Encryption type
-    wifi_security_type_e secType;
-    apRes = wifi_ap_get_security_type(apHandle, &secType);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the security type of the AP has failed. [0x%08X].", apRes);
-
-    wifi_encryption_type_e encType;
-    apRes = wifi_ap_get_encryption_type(apHandle, &encType);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the encryption type of the AP has failed. [0x%08X].", apRes);
-
-    SysLog(NID_NET_WIFI, "SSID : %ls security type : %d encryption type : %d", pBssInfoImpl->GetSsid().GetPointer(), secType, encType);
-
-    pSecuInfoImpl = _WifiSecurityInfoImpl::GetInstance(secuInfo);
-    pSecuInfoImpl->SetAuthenticationType(ConvertAuthType(secType, encType));
-    pSecuInfoImpl->SetEncryptionType(ConvertEncryptionType(encType));
-    pBssInfoImpl->SetSecurityInfo(secuInfo);
-
-    // BSS Type
-    pBssInfoImpl->SetBssType(WIFI_BSS_TYPE_INFRASTRUCTURE);
-
-    // Radio Channel
-    int frequency = -1;
-    apRes = wifi_ap_get_frequency(apHandle, &frequency);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the frequency band of the AP has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetRadioChannel(ConvertRadioChannel(frequency));
-
-    // RSSI
-    int rssi = -1;
-    apRes = wifi_ap_get_rssi(apHandle, &rssi);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the RSSI value of the AP has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetRssi(ConvertPercentagetoRssiValue(rssi));
-
-    // Data Rate
-    int dataRate = -1;
-    apRes = wifi_ap_get_max_speed(apHandle, &dataRate);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the MAX speed of the AP has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetDataRate(dataRate);
-
-    // Known.
-    bool isKnown = false;
-    apRes = wifi_ap_is_favorite(apHandle, &isKnown);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Checking the AP is a known device has failed. [0x%08X].", apRes);
-    pBssInfoImpl->SetKnown(isKnown);
-
-    // IP Address Scheme. Only IPv4 as the address family is taken into consideration for now.
-    apRes = wifi_ap_get_ip_config_type(apHandle, WIFI_ADDRESS_FAMILY_IPV4, &ipType);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE && ipType != WIFI_IP_CONFIG_TYPE_NONE, null, E_OPERATION_FAILED,
-               "[E_OPERATION_FAILED] Getting the IP address scheme to AP has failed. [0x%08X].", apRes);
-    netIpScheme = (ipType == WIFI_IP_CONFIG_TYPE_STATIC) ? NET_ADDRESS_SCHEME_STATIC : NET_ADDRESS_SCHEME_DYNAMIC;
-    pBssInfoImpl->SetLocalAddressScheme(netIpScheme);
-
-    if (netIpScheme == NET_ADDRESS_SCHEME_STATIC)
-    {
-        // IP Address. Only IPv4 as the address family is taken into consideration for now.
-       apRes = wifi_ap_get_ip_address(apHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
-       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Getting the IP address to AP has failed. [0x%08X].", apRes);
-       pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
-        r = GetLastResult();
-        free(pAddrStr);
-       SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
-        pBssInfoImpl->SetLocalAddress(pAddress.release()); // ignore result
-
-        // Subnet Mask. Only IPv4 as the address family is taken into consideration for now.
-       apRes = wifi_ap_get_subnet_mask(apHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
-       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Getting the subnet mask to AP has failed. [0x%08X].", apRes);
-       pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
-        r = GetLastResult();
-        free(pAddrStr);
-       SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
-        pBssInfoImpl->SetSubnetMaskAddress(pAddress.release()); // ignore result
-
-        // Default Gateway Address. Only IPv4 as the address family is taken into consideration for now.
-       apRes = wifi_ap_get_gateway_address(apHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
-       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Getting the default gateway address to AP has failed. [0x%08X].", apRes);
-       pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
-        r = GetLastResult();
-        free(pAddrStr);
-       SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
-        pBssInfoImpl->SetDefaultGatewayAddress(pAddress.release()); // ignore result
-
-        // Primary DNS Address. Only IPv4 as the address family is taken into consideration for now.
-       apRes = wifi_ap_get_dns_address(apHandle, 1, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
-       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Getting the primary DNS address to AP has failed. [0x%08X].", apRes);
-       pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
-        r = GetLastResult();
-        free(pAddrStr);
-       SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
-        pBssInfoImpl->SetPrimaryDnsAddress(pAddress.release()); // ignore result
-
-        // Secondary DNS Address. Only IPv4 as the address family is taken into consideration for now.
-       apRes = wifi_ap_get_dns_address(apHandle, 2, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
-       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Getting the secondary DNS address to AP has failed. [0x%08X].", apRes);
-       pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
-        r = GetLastResult();
-        free(pAddrStr);
-       SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
-                       "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
-        pBssInfoImpl->SetSecondaryDnsAddress(pAddress.release()); // ignore result
-    }
-
-    // Proxy Type.
-    apRes = wifi_ap_get_proxy_type(apHandle, &proxyType);
-    SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+       unique_ptr<WifiBssInfo> pBssInfo;
+       _WifiBssInfoImpl* pBssInfoImpl = null;
+       result r = E_SUCCESS;
+       int apRes = WIFI_ERROR_NONE;
+
+       WifiSecurityInfo secuInfo;
+       _WifiSecurityInfoImpl* pSecuInfoImpl = null;
+
+       wifi_ip_config_type_e ipType = WIFI_IP_CONFIG_TYPE_NONE;
+       NetAddressScheme netIpScheme = NET_ADDRESS_SCHEME_NONE;
+       char* pAddrStr = null;
+       unique_ptr<IpAddress> pAddress;
+       wifi_proxy_type_e proxyType = WIFI_PROXY_TYPE_DIRECT;
+       NetProxyType netProxyType = NET_PROXY_TYPE_NONE;
+
+       pBssInfo.reset(_WifiBssInfoImpl::CreateWifiBssInfoN());
+       SysTryReturn(NID_NET_WIFI, pBssInfo != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+       pBssInfoImpl = _WifiBssInfoImpl::GetInstance(*pBssInfo);
+       pBssInfoImpl->SetBssHandle(pApHandle);
+
+       // SSID
+       char* pSsid = null;
+       apRes = wifi_ap_get_essid(pApHandle, &pSsid);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the SSID of the AP has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetSsid(String(pSsid));
+       free(pSsid);
+
+       // BSSID
+       char* pBssid = null;
+       apRes = wifi_ap_get_bssid(pApHandle, &pBssid);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the BSSID of the AP has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetBssId(ConvertMacAddress(pBssid));
+       free(pBssid);
+
+       // Security type - Authentication type & Encryption type
+       wifi_security_type_e secType;
+       apRes = wifi_ap_get_security_type(pApHandle, &secType);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the security type of the AP has failed. [0x%08X].", apRes);
+
+       wifi_encryption_type_e encType;
+       apRes = wifi_ap_get_encryption_type(pApHandle, &encType);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the encryption type of the AP has failed. [0x%08X].", apRes);
+
+       SysLog(NID_NET_WIFI, "SSID : %ls security type : %d encryption type : %d", pBssInfoImpl->GetSsid().GetPointer(), secType, encType);
+
+       pSecuInfoImpl = _WifiSecurityInfoImpl::GetInstance(secuInfo);
+       pSecuInfoImpl->SetAuthenticationType(ConvertAuthType(secType, encType));
+       pSecuInfoImpl->SetEncryptionType(ConvertEncryptionType(encType));
+       pBssInfoImpl->SetSecurityInfo(secuInfo);
+
+       // BSS Type
+       pBssInfoImpl->SetBssType(WIFI_BSS_TYPE_INFRASTRUCTURE);
+
+       // Radio Channel
+       int frequency = -1;
+       apRes = wifi_ap_get_frequency(pApHandle, &frequency);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the frequency band of the AP has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetRadioChannel(ConvertRadioChannel(frequency));
+
+       // RSSI
+       int rssi = -1;
+       apRes = wifi_ap_get_rssi(pApHandle, &rssi);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the RSSI value of the AP has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetRssi(ConvertPercentagetoRssiValue(rssi));
+
+       // Data Rate
+       int dataRate = -1;
+       apRes = wifi_ap_get_max_speed(pApHandle, &dataRate);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the MAX speed of the AP has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetDataRate(dataRate);
+
+       // Known.
+       bool isKnown = false;
+       apRes = wifi_ap_is_favorite(pApHandle, &isKnown);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Checking the AP is a known device has failed. [0x%08X].", apRes);
+       pBssInfoImpl->SetKnown(isKnown);
+
+       // IP Address Scheme. Only IPv4 as the address family is taken into consideration for now.
+       apRes = wifi_ap_get_ip_config_type(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &ipType);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE && ipType != WIFI_IP_CONFIG_TYPE_NONE, null, E_OPERATION_FAILED,
+                       "[E_OPERATION_FAILED] Getting the IP address scheme to AP has failed. [0x%08X].", apRes);
+       netIpScheme = (ipType == WIFI_IP_CONFIG_TYPE_STATIC) ? NET_ADDRESS_SCHEME_STATIC : NET_ADDRESS_SCHEME_DYNAMIC;
+       pBssInfoImpl->SetLocalAddressScheme(netIpScheme);
+
+       if (netIpScheme == NET_ADDRESS_SCHEME_STATIC)
+       {
+               // IP Address. Only IPv4 as the address family is taken into consideration for now.
+               apRes = wifi_ap_get_ip_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Getting the IP address to AP has failed. [0x%08X].", apRes);
+               pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+               r = GetLastResult();
+               free(pAddrStr);
+               SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+               pBssInfoImpl->SetLocalAddress(pAddress.release()); // ignore result
+
+               // Subnet Mask. Only IPv4 as the address family is taken into consideration for now.
+               apRes = wifi_ap_get_subnet_mask(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Getting the subnet mask to AP has failed. [0x%08X].", apRes);
+               pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+               r = GetLastResult();
+               free(pAddrStr);
+               SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+               pBssInfoImpl->SetSubnetMaskAddress(pAddress.release()); // ignore result
+
+               // Default Gateway Address. Only IPv4 as the address family is taken into consideration for now.
+               apRes = wifi_ap_get_gateway_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Getting the default gateway address to AP has failed. [0x%08X].", apRes);
+               pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+               r = GetLastResult();
+               free(pAddrStr);
+               SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+               pBssInfoImpl->SetDefaultGatewayAddress(pAddress.release()); // ignore result
+
+               // Primary DNS Address. Only IPv4 as the address family is taken into consideration for now.
+               apRes = wifi_ap_get_dns_address(pApHandle, 1, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Getting the primary DNS address to AP has failed. [0x%08X].", apRes);
+               pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+               r = GetLastResult();
+               free(pAddrStr);
+               SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+               pBssInfoImpl->SetPrimaryDnsAddress(pAddress.release()); // ignore result
+
+               // Secondary DNS Address. Only IPv4 as the address family is taken into consideration for now.
+               apRes = wifi_ap_get_dns_address(pApHandle, 2, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Getting the secondary DNS address to AP has failed. [0x%08X].", apRes);
+               pAddress.reset(new (std::nothrow) Ip4Address(String(pAddrStr)));
+               r = GetLastResult();
+               free(pAddrStr);
+               SysTryReturn(NID_NET_WIFI, pAddress != null && r == E_SUCCESS, null, E_OPERATION_FAILED,
+                               "[E_OPERATION_FAILED] Creating an Ip4Address instance has faield. (from [%s])", GetErrorMessage(r));
+               pBssInfoImpl->SetSecondaryDnsAddress(pAddress.release()); // ignore result
+       }
+
+       // Proxy Type.
+       apRes = wifi_ap_get_proxy_type(pApHandle, &proxyType);
+       SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
                        "[E_OPERATION_FAILED] Getting the proxy type to AP has failed. [0x%08X].", apRes);
-    netProxyType = (proxyType == WIFI_PROXY_TYPE_MANUAL) ? NET_PROXY_TYPE_MANUAL : NET_PROXY_TYPE_NONE;
-    pBssInfoImpl->SetProxyType(netProxyType);
+       netProxyType = (proxyType == WIFI_PROXY_TYPE_MANUAL) ? NET_PROXY_TYPE_MANUAL : NET_PROXY_TYPE_NONE;
+       pBssInfoImpl->SetProxyType(netProxyType);
 
-    if (netProxyType != NET_PROXY_TYPE_NONE)
-    {
+       if (netProxyType != NET_PROXY_TYPE_NONE)
+       {
                // Proxy Address. Only IPv4 as the address family is taken into consideration for now.
-               apRes = wifi_ap_get_proxy_address(apHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
+               apRes = wifi_ap_get_proxy_address(pApHandle, WIFI_ADDRESS_FAMILY_IPV4, &pAddrStr);
                SysTryReturn(NID_NET_WIFI, apRes == WIFI_ERROR_NONE, null, E_OPERATION_FAILED,
                                "[E_OPERATION_FAILED] Getting the proxy address to AP has failed. [0x%08X].", apRes);
-        pBssInfoImpl->SetProxyAddress(String(pAddrStr)); // ignore result
-        free(pAddrStr);
-    }
+               pBssInfoImpl->SetProxyAddress(String(pAddrStr)); // ignore result
+               free(pAddrStr);
+       }
 
-    return pBssInfo.release();
+       return pBssInfo.release();
 }
 
 void
-_WifiUtility::WifiApClone(void** pDest, void* pSrc)
+_WifiUtility::WifiApClone(void*& pDestHandle, void* pSrcHandle)
 {
-    wifi_ap_h *pDestAp = static_cast<wifi_ap_h*>(pDest);
-    wifi_ap_h pSrcAp = static_cast<wifi_ap_h>(pSrc);
-    wifi_ap_clone(pDestAp, pSrcAp);
+       wifi_ap_h& pDestAp = static_cast<wifi_ap_h&>(pDestHandle);
+       wifi_ap_h pSrcAp = static_cast<wifi_ap_h>(pSrcHandle);
+       wifi_ap_clone(&pDestAp, pSrcAp);
 }
 
 void
-_WifiUtility::WifiApDestory(void*pApHandler)
+_WifiUtility::WifiApDestory(void*& pApApHandler)
 {
-    wifi_ap_destroy(*pApHandler);
-    *pApHandler = null;
+       wifi_ap_destroy(pApApHandler);
+       pApApHandler = null;
 }
 
 bool
 _WifiUtility::CheckAddressEquality(Tizen::Net::IpAddress* pFirstAddress, Tizen::Net::IpAddress* pSecondAddress)
 {
-    if (pFirstAddress == null && pSecondAddress == null)
-    {
-        SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) true");
-        return true;
-    }
-    else if(pFirstAddress == null && pSecondAddress != null)
-    {
-        SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) false");
-        return false;
-    }
-    else if(pFirstAddress != null && pSecondAddress == null)
-    {
-        SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) false");
-        return false;
-    }
-
-    return pFirstAddress->Equals(*pSecondAddress);
+       if (pFirstAddress == null && pSecondAddress == null)
+       {
+               SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) true");
+               return true;
+       }
+       else if(pFirstAddress == null && pSecondAddress != null)
+       {
+               SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) false");
+               return false;
+       }
+       else if(pFirstAddress != null && pSecondAddress == null)
+       {
+               SysLog(NID_NET_WIFI, "if (pFirstAddress == null && pSecondAddress == null) false");
+               return false;
+       }
+
+       return pFirstAddress->Equals(*pSecondAddress);
 }
 
 Tizen::Base::Collection::IList*