[wifi] Add new CAPI to get Raw SSID bytes 08/84408/1
authorSaurav Babu <saurav.babu@samsung.com>
Thu, 18 Aug 2016 10:45:35 +0000 (16:15 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Thu, 18 Aug 2016 10:45:35 +0000 (16:15 +0530)
Change-Id: I9bc2d012ab4eafe69476b1351acc5407c90602be
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
include/tv/wifi.h
src/net_wifi_ap.c
test/wifi_test.c

index b8bc555542412f2e5d93e88ddb3ca1757a8fdafa..d9092ce8d03cd52a9d3e2a12f12e953dbef3ca31 100755 (executable)
@@ -1052,6 +1052,21 @@ int wifi_ap_refresh(wifi_ap_h ap);
  */
 int wifi_ap_get_essid(wifi_ap_h ap, char** essid);
 
+/**
+ * @brief Gets Raw SSID Bytes (Service Set Identifier).
+ * @since_tizen 3.0
+ * @remarks You must release @a ssid using free().
+ * @param[in] ap  The access point handle
+ * @param[out] ssid  The Raw SSID Bytes
+ * @param[out] ssid_len  The Raw SSID Length
+ * @return 0 on success, otherwise negative error value
+ * @retval #WIFI_ERROR_NONE  Successful
+ * @retval #WIFI_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #WIFI_ERROR_OUT_OF_MEMORY  Out of memory
+ * @retval #WIFI_ERROR_NOT_SUPPORTED   Not supported
+ */
+int wifi_ap_get_raw_ssid(wifi_ap_h ap, char** ssid, int *ssid_len);
+
 /**
  * @brief Gets BSSID (Basic Service Set Identifier).
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
index 20d7f965f009a6c93bec54752014a76f2cffc2ed..35595beb7641b1ae30b554291edc712e31d37943 100755 (executable)
@@ -313,6 +313,34 @@ EXPORT_API int wifi_ap_get_essid(wifi_ap_h ap, char** essid)
        return WIFI_ERROR_NONE;
 }
 
+EXPORT_API int wifi_ap_get_raw_ssid(wifi_ap_h ap, char** ssid, int *ssid_len)
+{
+#if defined TIZEN_TV
+       CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+
+       if (_wifi_libnet_check_ap_validity(ap) == false || ssid == NULL ||
+                       ssid_len == NULL) {
+               WIFI_LOG(WIFI_ERROR, "Wrong Parameter Passed\n");
+               return WIFI_ERROR_INVALID_PARAMETER;
+       }
+
+       net_profile_info_t *profile_info = ap;
+       *ssid = g_try_malloc0(profile_info->ProfileInfo.Wlan.ssid_len);
+       if (*ssid == NULL) {
+               WIFI_LOG(WIFI_ERROR, "Out of memory");
+               return WIFI_ERROR_OUT_OF_MEMORY;
+       }
+
+       *ssid_len = profile_info->ProfileInfo.Wlan.ssid_len;
+       memcpy(*ssid,  profile_info->ProfileInfo.Wlan.ssid, *ssid_len);
+
+       WIFI_LOG(WIFI_INFO, "Wi-Fi ssid_len [%d]\n", *ssid_len);
+       return WIFI_ERROR_NONE;
+#else
+       return WIFI_ERROR_NOT_SUPPORTED;
+#endif
+}
+
 EXPORT_API int wifi_ap_get_bssid(wifi_ap_h ap, char** bssid)
 {
        CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
index 5cb3b986475b71223f116080ac8e2fa3cff8bb93..5b51989a0591fc2065224a5b39c317af14c64bd4 100755 (executable)
@@ -729,6 +729,19 @@ static bool __test_found_print_ap_info_callback(wifi_ap_h ap, void *user_data)
                /* Basic info */
                printf("ESSID : %s\n", ap_name);
 
+#if defined TIZEN_TV
+               if (wifi_ap_get_raw_ssid(ap, &str_value, &int_value) == WIFI_ERROR_NONE) {
+                       int i;
+                       printf("Raw SSID : ");
+                       for (i = 0; i < int_value; i++) {
+                               printf("%02x",  str_value[i]);
+                       }
+                       printf("\n");
+                       g_free(str_value);
+               } else
+                       printf("Fail to get SSID\n");
+#endif
+
                if (wifi_ap_get_bssid(ap, &str_value) == WIFI_ERROR_NONE) {
                        printf("BSSID : %s\n", str_value);
                        g_free(str_value);