From c147c389f197f37eac0a50b13efcbc65a95a4903 Mon Sep 17 00:00:00 2001 From: Niraj Kumar Goit Date: Tue, 7 Aug 2018 19:29:29 +0530 Subject: [PATCH] Added config CAPI to set DNS config type. Added config CAPI "wifi_manager_config_set_dns_config_type" for Hidden AP connection with static IP setting. Change-Id: I0fe80353abd95002598dc242d6e473304672e716 Signed-off-by: Niraj Kumar Goit --- include/wifi_internal.h | 1 + src/network_dbus.c | 12 ++++++++++++ src/wifi_config.c | 25 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/include/wifi_internal.h b/include/wifi_internal.h index f7009db..6d28798 100755 --- a/include/wifi_internal.h +++ b/include/wifi_internal.h @@ -51,6 +51,7 @@ extern "C" { #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_IPV4_DNS_METHOD "Nameservers.IPv4method" #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 43c5e70..df24a21 100755 --- a/src/network_dbus.c +++ b/src/network_dbus.c @@ -2854,10 +2854,22 @@ int _net_dbus_config_save_configurations(const gchar *config_id, const gchar *na if (ip_info->gateway_address) g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_GATEWAY_ADDRESS, g_variant_new_string(ip_info->gateway_address)); + + if (ip_info->dns_type == NET_DNS_CONFIG_TYPE_STATIC) + g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_DNS_METHOD, + g_variant_new_string(manual_method)); break; case NET_IP_CONFIG_TYPE_DYNAMIC: g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_METHOD, g_variant_new_string(dhcp_method)); + + if (ip_info->dns_type == NET_DNS_CONFIG_TYPE_DYNAMIC) + g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_DNS_METHOD, + g_variant_new_string(dhcp_method)); + + else if (ip_info->dns_type == NET_DNS_CONFIG_TYPE_STATIC) + g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_DNS_METHOD, + g_variant_new_string(manual_method)); break; default: break; diff --git a/src/wifi_config.c b/src/wifi_config.c index 2916092..6d635e4 100755 --- a/src/wifi_config.c +++ b/src/wifi_config.c @@ -576,6 +576,31 @@ EXPORT_API int wifi_manager_config_set_gateway_address(wifi_manager_config_h con return WIFI_MANAGER_ERROR_NONE; } +EXPORT_API int wifi_manager_config_set_dns_config_type(wifi_manager_config_h config, + wifi_manager_address_family_e address_family, + wifi_manager_dns_config_type_e type) +{ + __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->dns_type = type; + + __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