Added config CAPI to set gateway address. 51/186151/5
authorNiraj Kumar Goit <niraj.g@samsung.com>
Tue, 7 Aug 2018 12:37:01 +0000 (18:07 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Fri, 31 Aug 2018 12:47:25 +0000 (18:17 +0530)
Added config CAPI "wifi_manager_config_set_gateway_address" for
Hidden AP connection with static IP setting.

Change-Id: Idab2042d60e165dd40d2d4be1915e0d3610a0f8d
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
include/wifi_internal.h
src/network_dbus.c
src/wifi_config.c

index 21c6cd9..f7009db 100755 (executable)
@@ -50,6 +50,7 @@ extern "C" {
 #define WIFI_CONFIG_IPV6_METHOD                        "IPv6.method"
 #define WIFI_CONFIG_IPV4_ADDRESS                       "IPv4.local_address"
 #define WIFI_CONFIG_IPV4_SUBNET_MASK           "IPv4.netmask_prefixlen"
+#define WIFI_CONFIG_IPV4_GATEWAY_ADDRESS       "IPv4.gateway"
 #define WIFI_CONFIG_FAILURE                                    "Failure"
 #define WIFI_CONFIG_EAP_ANONYMOUS_IDENTITY     "AnonymousIdentity"
 #define WIFI_CONFIG_EAP_CACERT                         "CACertFile"
index 8c455c1..43c5e70 100755 (executable)
@@ -2840,20 +2840,24 @@ int _net_dbus_config_save_configurations(const gchar *config_id, const gchar *na
 
        switch (ip_info->ip_type) {
        case NET_IP_CONFIG_TYPE_STATIC:
-                       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_METHOD,
-                                                         g_variant_new_string(manual_method));
+               g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_METHOD,
+                                                 g_variant_new_string(manual_method));
+
+               if (ip_info->ip_address)
+                       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_ADDRESS,
+                                                 g_variant_new_string(ip_info->ip_address));
 
-                       if (ip_info->ip_address)
-                               g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_ADDRESS,
-                                                         g_variant_new_string(ip_info->ip_address));
+               if (ip_info->subnet_mask)
+                       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_SUBNET_MASK,
+                                                 g_variant_new_string(ip_info->subnet_mask));
 
-                       if (ip_info->subnet_mask)
-                               g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_SUBNET_MASK,
-                                                         g_variant_new_string(ip_info->subnet_mask));
+               if (ip_info->gateway_address)
+                       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_GATEWAY_ADDRESS,
+                                         g_variant_new_string(ip_info->gateway_address));
                break;
        case NET_IP_CONFIG_TYPE_DYNAMIC:
                        g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_METHOD,
-                                                                 g_variant_new_string(dhcp_method));
+                                                         g_variant_new_string(dhcp_method));
                break;
        default:
                break;
index 75258c5..2916092 100755 (executable)
@@ -552,6 +552,30 @@ EXPORT_API int wifi_manager_config_set_subnet_mask(wifi_manager_config_h config,
        return WIFI_MANAGER_ERROR_NONE;
 }
 
+EXPORT_API int wifi_manager_config_set_gateway_address(wifi_manager_config_h config,
+               wifi_manager_address_family_e address_family, const char *gateway_address)
+{
+       __NETWORK_CAPI_FUNC_ENTER__;
+
+       CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+
+       wifi_config_s *h = (wifi_config_s *)config;
+
+       if (_wifi_check_config_validity(config) == false ||
+                       (address_family != WIFI_MANAGER_ADDRESS_FAMILY_IPV4 &&
+                        address_family != WIFI_MANAGER_ADDRESS_FAMILY_IPV6)) {
+               WIFI_LOG(WIFI_ERROR, "Invalid parameter"); //LCOV_EXCL_LINE
+               __NETWORK_CAPI_FUNC_EXIT__; //LCOV_EXCL_LINE
+               return WIFI_MANAGER_ERROR_INVALID_PARAMETER; //LCOV_EXCL_LINE
+       }
+
+       h->ip_info->gateway_address = g_strdup(gateway_address);
+
+       __NETWORK_CAPI_FUNC_EXIT__;
+
+       return WIFI_MANAGER_ERROR_NONE;
+}
+
 EXPORT_API int wifi_manager_config_get_eap_anonymous_identity(wifi_manager_config_h config,
                char **anonymous_identity)
 {