From a1a6c69e04f8fd71cb5b43822b9b84e8bdc9311d Mon Sep 17 00:00:00 2001 From: Niraj Kumar Goit Date: Tue, 7 Aug 2018 18:07:01 +0530 Subject: [PATCH] Added config CAPI to set gateway address. 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 --- include/wifi_internal.h | 1 + src/network_dbus.c | 22 +++++++++++++--------- src/wifi_config.c | 24 ++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/include/wifi_internal.h b/include/wifi_internal.h index 21c6cd9..f7009db 100755 --- a/include/wifi_internal.h +++ b/include/wifi_internal.h @@ -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" diff --git a/src/network_dbus.c b/src/network_dbus.c index 8c455c1..43c5e70 100755 --- a/src/network_dbus.c +++ b/src/network_dbus.c @@ -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; diff --git a/src/wifi_config.c b/src/wifi_config.c index 75258c5..2916092 100755 --- a/src/wifi_config.c +++ b/src/wifi_config.c @@ -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) { -- 2.7.4