From 618e27e68d7435197942180e18f52fef7317a293 Mon Sep 17 00:00:00 2001 From: Niraj Kumar Goit Date: Tue, 7 Aug 2018 17:39:38 +0530 Subject: [PATCH] Added config CAPI to set subnet mask. Added config CAPI "wifi_manager_config_set_subnet_mask" for Hidden AP connection with static IP setting. Change-Id: I8ddca1af8bab711240fc249f41757e36a7148c71 Signed-off-by: Niraj Kumar Goit --- include/wifi_internal.h | 1 + src/network_dbus.c | 3 +++ src/wifi_config.c | 24 ++++++++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/include/wifi_internal.h b/include/wifi_internal.h index c9ca81a..21c6cd9 100755 --- a/include/wifi_internal.h +++ b/include/wifi_internal.h @@ -49,6 +49,7 @@ extern "C" { #define WIFI_CONFIG_IPV4_METHOD "IPv4.method" #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_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 3d43722..8c455c1 100755 --- a/src/network_dbus.c +++ b/src/network_dbus.c @@ -2847,6 +2847,9 @@ int _net_dbus_config_save_configurations(const gchar *config_id, const gchar *na 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)); break; case NET_IP_CONFIG_TYPE_DYNAMIC: g_variant_builder_add(b, "{sv}", WIFI_CONFIG_IPV4_METHOD, diff --git a/src/wifi_config.c b/src/wifi_config.c index ca218b3..75258c5 100755 --- a/src/wifi_config.c +++ b/src/wifi_config.c @@ -528,6 +528,30 @@ EXPORT_API int wifi_manager_config_set_ip_address(wifi_manager_config_h config, return WIFI_MANAGER_ERROR_NONE; } +EXPORT_API int wifi_manager_config_set_subnet_mask(wifi_manager_config_h config, + wifi_manager_address_family_e address_family, const char *subnet_mask) +{ + __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->subnet_mask = g_strdup(subnet_mask); + + __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