From: Saurav Babu Date: Thu, 18 Aug 2016 10:45:35 +0000 (+0530) Subject: [wifi] Add new CAPI to get Raw SSID bytes X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16a0a84336fba7fc3f095617f1a51244df79ce0d;p=platform%2Fcore%2Fapi%2Fwifi.git [wifi] Add new CAPI to get Raw SSID bytes Change-Id: I9bc2d012ab4eafe69476b1351acc5407c90602be Signed-off-by: Saurav Babu --- diff --git a/include/tv/wifi.h b/include/tv/wifi.h index b8bc555..d9092ce 100755 --- a/include/tv/wifi.h +++ b/include/tv/wifi.h @@ -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 diff --git a/src/net_wifi_ap.c b/src/net_wifi_ap.c index 20d7f96..35595be 100755 --- a/src/net_wifi_ap.c +++ b/src/net_wifi_ap.c @@ -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); diff --git a/test/wifi_test.c b/test/wifi_test.c index 5cb3b98..5b51989 100755 --- a/test/wifi_test.c +++ b/test/wifi_test.c @@ -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);