Add feature check 97/96897/1 accepted/tizen/common/20161116.134414 accepted/tizen/ivi/20161117.010046 accepted/tizen/mobile/20161117.005943 accepted/tizen/wearable/20161117.010020 submit/tizen/20161116.043314
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 10 Nov 2016 13:20:25 +0000 (22:20 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 10 Nov 2016 13:20:47 +0000 (22:20 +0900)
Change-Id: Icb28f47907c56d6f9e51bbdf0967f30c123584af
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
include/softap_private.h
packaging/capi-network-softap.spec
src/softap.c
src/softap_private.c [new file with mode: 0755]

index f869bcd8b24b6b9086be3b8a86ef21ea4e744779..8372646d1438bac774d5d60f07955434ea563956 100644 (file)
@@ -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
index 50417b1690a80732570e2edc2d347395bad8b81b..7b0ef00edd3e77ff125dd3ce81e27f006f737456 100644 (file)
@@ -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
index 90b28006c8ada6b4595f0658a3061c0d67054e12..236084d629c2acca74ab250eb7187d4caf51edfa 100755 (executable)
@@ -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 (executable)
index 0000000..985d3ed
--- /dev/null
@@ -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 <stdlib.h>
+#include <string.h>
+#include <system_info.h>
+#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;
+}