From: Seonah Moon Date: Thu, 10 Nov 2016 13:20:25 +0000 (+0900) Subject: Add feature check X-Git-Tag: submit/tizen/20161116.043314^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F97%2F96897%2F1;p=platform%2Fcore%2Fapi%2Fsoftap.git Add feature check Change-Id: Icb28f47907c56d6f9e51bbdf0967f30c123584af Signed-off-by: Seonah Moon --- diff --git a/include/softap_private.h b/include/softap_private.h index f869bcd..8372646 100644 --- a/include/softap_private.h +++ b/include/softap_private.h @@ -74,15 +74,17 @@ extern "C" { } \ } while (0) -#define CHECK_FEATURE_SUPPORTED(...) \ +#define WIFI_FEATURE "http://tizen.org/feature/network.wifi" + +#define CHECK_FEATURE_SUPPORTED(key) \ do { \ - int rv = _softap_check_feature_supported(__VA_ARGS__, NULL); \ + int rv = _softap_check_feature_supported(key); \ if(rv != SOFTAP_ERROR_NONE) { \ return rv; \ } \ } while (0) -int _softap_check_feature_supported(const char* feature, ...); +int _softap_check_feature_supported(const char *key); /** * Start of mobileap-agent common values diff --git a/packaging/capi-network-softap.spec b/packaging/capi-network-softap.spec index 50417b1..7b0ef00 100644 --- a/packaging/capi-network-softap.spec +++ b/packaging/capi-network-softap.spec @@ -1,6 +1,6 @@ Name: capi-network-softap Summary: Softap Framework -Version: 0.0.10 +Version: 0.0.11 Release: 1 Group: System/Network License: Apache-2.0 diff --git a/src/softap.c b/src/softap.c index 90b2800..236084d 100755 --- a/src/softap.c +++ b/src/softap.c @@ -705,6 +705,7 @@ static bool __get_ssid_from_vconf(const char *path, char *ssid, unsigned int siz API int softap_create(softap_h *softap) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -783,7 +784,7 @@ API int softap_create(softap_h *softap) API int softap_destroy(softap_h softap) { DBG("+"); - + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -809,6 +810,7 @@ API int softap_destroy(softap_h softap) API int softap_enable(softap_h softap) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL"); @@ -842,6 +844,7 @@ API int softap_enable(softap_h softap) API int softap_disable(softap_h softap) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL"); @@ -860,8 +863,8 @@ API int softap_disable(softap_h softap) } API int softap_reload_settings(softap_h softap, softap_settings_reloaded_cb callback, void *user_data) - { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -899,6 +902,7 @@ API int softap_reload_settings(softap_h softap, softap_settings_reloaded_cb call API int softap_is_enabled(softap_h softap, bool *enable) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL"); _retvm_if(enable == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -921,6 +925,7 @@ API int softap_is_enabled(softap_h softap, bool *enable) API int softap_get_mac_address(softap_h softap, char **mac_address) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(mac_address == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -969,6 +974,7 @@ API int softap_get_mac_address(softap_h softap, char **mac_address) API int softap_get_network_interface_name(softap_h softap, char **interface_name) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(interface_name == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -992,6 +998,7 @@ API int softap_get_network_interface_name(softap_h softap, char **interface_name API int softap_get_ip_address(softap_h softap, softap_address_family_e address_family, char **ip_address) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(ip_address == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1031,6 +1038,7 @@ API int softap_get_ip_address(softap_h softap, softap_address_family_e address_f API int softap_get_gateway_address(softap_h softap, softap_address_family_e address_family, char **gateway_address) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(gateway_address == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1052,6 +1060,7 @@ API int softap_get_gateway_address(softap_h softap, softap_address_family_e addr API int softap_get_subnet_mask(softap_h softap, softap_address_family_e address_family, char **subnet_mask) { DBG("+"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(subnet_mask == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1073,6 +1082,7 @@ API int softap_get_subnet_mask(softap_h softap, softap_address_family_e address_ API int softap_foreach_connected_clients(softap_h softap, softap_connected_client_cb callback, void *user_data) { DBG("+\n"); + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1157,6 +1167,7 @@ API int softap_foreach_connected_clients(softap_h softap, softap_connected_clien API int softap_set_enabled_cb(softap_h softap, softap_enabled_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1172,6 +1183,7 @@ API int softap_set_enabled_cb(softap_h softap, softap_enabled_cb callback, void API int softap_unset_enabled_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1185,6 +1197,7 @@ API int softap_unset_enabled_cb(softap_h softap) API int softap_set_disabled_cb(softap_h softap, softap_disabled_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1200,6 +1213,7 @@ API int softap_set_disabled_cb(softap_h softap, softap_disabled_cb callback, voi API int softap_unset_disabled_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1213,6 +1227,7 @@ API int softap_unset_disabled_cb(softap_h softap) API int softap_set_client_connection_state_changed_cb(softap_h softap, softap_client_connection_state_changed_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1228,6 +1243,7 @@ API int softap_set_client_connection_state_changed_cb(softap_h softap, softap_cl API int softap_unset_client_connection_state_changed_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1242,6 +1258,7 @@ API int softap_unset_client_connection_state_changed_cb(softap_h softap) API int softap_set_security_type_changed_cb(softap_h softap, softap_security_type_changed_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1257,6 +1274,7 @@ API int softap_set_security_type_changed_cb(softap_h softap, softap_security_typ API int softap_unset_security_type_changed_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1270,6 +1288,7 @@ API int softap_unset_security_type_changed_cb(softap_h softap) API int softap_set_ssid_visibility_changed_cb(softap_h softap, softap_ssid_visibility_changed_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1285,6 +1304,7 @@ API int softap_set_ssid_visibility_changed_cb(softap_h softap, softap_ssid_visib API int softap_unset_ssid_visibility_changed_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1298,6 +1318,7 @@ API int softap_unset_ssid_visibility_changed_cb(softap_h softap) API int softap_set_passphrase_changed_cb(softap_h softap, softap_passphrase_changed_cb callback, void *user_data) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(callback == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1313,6 +1334,7 @@ API int softap_set_passphrase_changed_cb(softap_h softap, softap_passphrase_chan API int softap_unset_passphrase_changed_cb(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1326,6 +1348,7 @@ API int softap_unset_passphrase_changed_cb(softap_h softap) API int softap_set_security_type(softap_h softap, softap_security_type_e type) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1359,6 +1382,7 @@ API int softap_set_security_type(softap_h softap, softap_security_type_e type) API int softap_get_security_type(softap_h softap, softap_security_type_e *type) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(type == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1369,6 +1393,7 @@ API int softap_get_security_type(softap_h softap, softap_security_type_e *type) API int softap_set_ssid(softap_h softap, const char *ssid) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(ssid == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1399,6 +1424,7 @@ API int softap_set_ssid(softap_h softap, const char *ssid) API int softap_get_ssid(softap_h softap, char **ssid) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(ssid == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1439,6 +1465,7 @@ API int softap_get_ssid(softap_h softap, char **ssid) API int softap_set_ssid_visibility(softap_h softap, bool visible) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); @@ -1458,6 +1485,7 @@ API int softap_set_ssid_visibility(softap_h softap, bool visible) API int softap_get_ssid_visibility(softap_h softap, bool *visible) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(visible == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1468,6 +1496,7 @@ API int softap_get_ssid_visibility(softap_h softap, bool *visible) API int softap_set_passphrase(softap_h softap, const char *passphrase) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(passphrase == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1492,6 +1521,7 @@ API int softap_set_passphrase(softap_h softap, const char *passphrase) API int softap_get_passphrase(softap_h softap, char **passphrase) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, "parameter(softap) is NULL\n"); _retvm_if(passphrase == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1512,6 +1542,7 @@ API int softap_get_passphrase(softap_h softap, char **passphrase) API int softap_push_wps_button(softap_h softap) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); DBG("+"); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, @@ -1549,6 +1580,7 @@ API int softap_push_wps_button(softap_h softap) API int softap_set_wps_pin(softap_h softap, const char *wps_pin) { + CHECK_FEATURE_SUPPORTED(WIFI_FEATURE); DBG("+"); _retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER, diff --git a/src/softap_private.c b/src/softap_private.c new file mode 100755 index 0000000..985d3ed --- /dev/null +++ b/src/softap_private.c @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include +#include +#include "softap_private.h" + +#define WIFI_FEATURE "http://tizen.org/feature/network.wifi" +static __thread bool is_feature_checked = 0; +static __thread bool feature_supported = 0; + +int _softap_check_feature_supported(const char *key) +{ + if (!is_feature_checked) { + if (system_info_get_platform_bool(key, &feature_supported) < 0) { + ERR("Get feature is failed"); + return SOFTAP_ERROR_NOT_SUPPORTED; + } + is_feature_checked = true; + } + + if (!feature_supported) { + ERR("Not supported feature"); + return SOFTAP_ERROR_NOT_SUPPORTED; + } + + return SOFTAP_ERROR_NONE; +}