Add to get/set frequency of config 80/244380/2
authorhyunuk.tak <hyunuk.tak@samsung.com>
Fri, 18 Sep 2020 04:01:42 +0000 (13:01 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Fri, 25 Sep 2020 01:49:30 +0000 (10:49 +0900)
Change-Id: Ic64e6c19266e029a6d44c0746639766953fe9217
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
include/network_dbus.h
include/network_interface.h
include/wifi-manager-extension.h
include/wifi_internal.h
src/network_dbus.c
src/network_interface.c
src/wifi_config.c
src/wifi_internal.c

index 64ea13e..f6db86f 100755 (executable)
@@ -153,21 +153,24 @@ int _net_dbus_config_set_field(network_info_s *network_info,
 int _net_dbus_config_get_passphrase(network_info_s *network_info,
                const gchar *config_id, gchar **passphrase);
 int _net_dbus_config_save_configurations(network_info_s *network_info,
-               const gchar *config_id, const gchar *name,
-               const gchar *ssid, const gchar *passphrase, const gchar *proxy_address,
-               net_ip_info_config_s *ip_info, gboolean is_hidden, gboolean is_created);
+               const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
+               const gchar *proxy_address, net_ip_info_config_s *ip_info, guint32 frequency,
+               gboolean is_hidden, gboolean is_created);
 int _net_dbus_config_save_eap_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, net_eap_config_s *eap_config, gboolean is_hidden, gboolean is_created);
+               const gchar *proxy_address, net_eap_config_s *eap_config, guint32 frequency,
+               gboolean is_hidden, gboolean is_created);
 int _net_dbus_config_remove_configurations(network_info_s *network_info,
                const gchar *config_id);
 int _net_dbus_config_load_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, gchar **passphrase,
                net_wifi_security_type_e *security_type, gchar **proxy_address,
-               gboolean *is_hidden, net_ip_info_config_s **ip_info, void *last_error);
+               gboolean *is_hidden, net_ip_info_config_s **ip_info,
+               guint32 *frequency, void *last_error);
 int _net_dbus_config_load_eap_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, net_wifi_security_type_e *security_type,
-               gchar **proxy_address, gboolean *is_hidden, net_eap_config_s **eap_config, void *last_error);
+               gchar **proxy_address, gboolean *is_hidden, net_eap_config_s **eap_config,
+               guint32 *frequency, void *last_error);
 
 int _net_dbus_device_policy_get_wifi(network_info_s *network_info, int *state);
 int _net_dbus_device_policy_get_wifi_profile(network_info_s *network_info,
index dcfe2c3..2ade4b0 100755 (executable)
@@ -339,20 +339,21 @@ int net_config_get_passphrase(network_info_s *network_info,
                const gchar *config_id, gchar **passphrase);
 int net_config_save_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, net_ip_info_config_s *ip_info,
+               const gchar *proxy_address, net_ip_info_config_s *ip_info, guint32 frequency,
                gboolean is_hidden, gboolean is_created);
 int net_config_save_eap_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, void *eap_config, gboolean is_hidden, gboolean is_created);
+               const gchar *proxy_address, void *eap_config, guint32 frequency,
+               gboolean is_hidden, gboolean is_created);
 int net_config_remove_configurations(network_info_s *network_info,
                const gchar *config_id);
 int net_config_load_configurations(network_info_s *network_info,
-               const gchar *config_id, gchar **name,
-               gchar **passphrase, void *security_type, gchar **proxy_address, gboolean *is_hidden,
-               net_ip_info_config_s **ip_info, void *last_error);
+               const gchar *config_id, gchar **name, gchar **passphrase, void *security_type,
+               gchar **proxy_address, gboolean *is_hidden, net_ip_info_config_s **ip_info,
+               guint32 *frequency, void *last_error);
 int net_config_load_eap_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, void *security_type, gchar **proxy_address,
-               gboolean *is_hidden, void **eap_config, void *last_error);
+               gboolean *is_hidden, void **eap_config, guint32 *frequency, void *last_error);
 int net_set_ip_conflict_detect_mode(network_info_s *network_info, gboolean detect);
 int net_ip_conflict_detect_is_enabled(network_info_s *network_info, gboolean *state);
 int net_wifi_set_ip_conflict_period(network_info_s *network_info,
index b0883d9..10219e7 100755 (executable)
@@ -169,6 +169,39 @@ int wifi_manager_config_foreach_configuration_in_all_interfaces(wifi_manager_h w
                        wifi_manager_config_list_cb callback, void *user_data);
 
 /**
+ * @brief Gets access point frequency from configuration.
+ * @since_tizen 6.0
+ *
+ * @param[in] config        The access point configuration handle
+ * @param[out] frequency    The frequency
+ *
+ * @return 0 on success, otherwise negative error value
+ * @retval #WIFI_MANAGER_ERROR_NONE                 Successful
+ * @retval #WIFI_MANAGER_ERROR_NOT_INITIALIZED      Not initialized
+ * @retval #WIFI_MANAGER_ERROR_INVALID_PARAMETER    Invalid parameter
+ * @retval #WIFI_MANAGER_ERROR_NOT_SUPPORTED        Not supported
+ */
+int wifi_manager_config_get_frequency(wifi_manager_config_h config,
+               int *frequency);
+
+/**
+ * @brief Sets access point frequency to configuration.
+ * @since_tizen 6.0
+ *
+ * @param[in] config        The access point configuration handle
+ * @param[in] frequency     The frequency
+ *
+ * @return 0 on success, otherwise negative error value
+ * @retval #WIFI_MANAGER_ERROR_NONE                 Successful
+ * @retval #WIFI_MANAGER_ERROR_NOT_INITIALIZED      Not initialized
+ * @retval #WIFI_MANAGER_ERROR_INVALID_PARAMETER    Invalid parameter
+ * @retval #WIFI_MANAGER_ERROR_NOT_SUPPORTED        Not supported
+ * @see wifi_manager_config_save()
+ */
+int wifi_manager_config_set_frequency(wifi_manager_config_h config,
+               int frequency);
+
+/**
  * @brief Enables or disables auto-scanning
  * @details If auto-scanning is disabled, then background scan and wps scan don't work.
  * By default, the auto-scanning is enabled automatically until disabling auto-scanning.
index 1f78016..ff4d7c2 100755 (executable)
@@ -50,6 +50,7 @@ extern "C" {
 #define WIFI_CONFIG_PROXYADDRESS                       "ProxyAddress"
 #define WIFI_CONFIG_HIDDEN                                     "Hidden"
 #define WIFI_CONFIG_CREATED                                    "Created"
+#define WIFI_CONFIG_FREQUENCY                          "Frequency"
 #define WIFI_CONFIG_IPV4_METHOD                        "IPv4.method"
 #define WIFI_CONFIG_IPV6_METHOD                        "IPv6.method"
 #define WIFI_CONFIG_IPV4_ADDRESS                       "IPv4.local_address"
@@ -276,6 +277,7 @@ typedef struct {
        wifi_eap_config_s *eap_config;
        wifi_config_ip_info_s *ip_info;
        wifi_manager_error_e last_error;
+       guint32 frequency;
 
        wifi_manager_handle_s *wifi_handle;
 } wifi_config_s;
@@ -413,20 +415,14 @@ void _wifi_remove_from_config_list(wifi_config_s *config);
 gchar * _wifi_config_get_config_id(const gchar *name, wifi_manager_security_type_e security_type);
 int _wifi_config_get_config_id_list(wifi_manager_h wifi, GSList **list);
 
-int _wifi_save_configuration(wifi_manager_h wifi,
-               const gchar *name, const gchar *passphrase,
-               wifi_manager_security_type_e security_type, const gchar *proxy_address,
-               wifi_config_ip_info_s *ip_info, gboolean is_hidden, gboolean is_created);
+int _wifi_save_configuration(wifi_manager_h wifi, wifi_config_s *config);
 int _wifi_load_configurations(wifi_manager_h wifi);
 int _wifi_foreach_configuration(wifi_manager_h wifi,
                wifi_manager_config_list_cb callback, void *user_data);
 int _wifi_remove_configuration(wifi_manager_h wifi, const gchar *config_id);
 int _wifi_configuration_set_field(wifi_manager_h wifi, const gchar *config_id, const gchar *key, const gchar *value);
 int _wifi_configuration_get_passphrase(wifi_manager_h wifi, const gchar *config_id, gchar **passphrase);
-int _wifi_save_eap_configurations(wifi_manager_h wifi,
-               const gchar *name, const gchar *passphrase,
-               wifi_manager_security_type_e security_type, const gchar *proxy_address,
-               wifi_eap_config_s *eap_config, gboolean is_hidden, gboolean is_created);
+int _wifi_save_eap_configurations(wifi_manager_h wifi, wifi_config_s *config);
 gchar *_wifi_eap_type_to_string(wifi_manager_eap_type_e eap_type);
 gchar *_wifi_eap_auth_type_to_string(wifi_manager_eap_auth_type_e eap_auth_type);
 int _wifi_set_autoscan(wifi_manager_h wifi, bool autoscan);
index 8b7e051..eda5335 100755 (executable)
@@ -3242,9 +3242,9 @@ int _net_dbus_config_get_passphrase(network_info_s *network_info,
 }
 
 int _net_dbus_config_save_configurations(network_info_s *network_info,
-               const gchar *config_id, const gchar *name,
-               const gchar *ssid, const gchar *passphrase, const gchar *proxy_address,
-               net_ip_info_config_s *ip_info, gboolean is_hidden, gboolean is_created)
+               const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
+               const gchar *proxy_address, net_ip_info_config_s *ip_info, guint32 frequency,
+               gboolean is_hidden, gboolean is_created)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3266,6 +3266,7 @@ int _net_dbus_config_save_configurations(network_info_s *network_info,
                g_variant_builder_add(b, "{sv}", WIFI_CONFIG_PROXYADDRESS, g_variant_new_string(proxy_address));
        if (is_hidden == TRUE)
                g_variant_builder_add(b, "{sv}", WIFI_CONFIG_HIDDEN, g_variant_new_string("TRUE"));
+       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_FREQUENCY, g_variant_new_uint32(frequency));
        g_variant_builder_add(b, "{sv}", WIFI_CONFIG_CREATED, g_variant_new_boolean(is_created));
 
        switch (ip_info->ip_type) {
@@ -3370,7 +3371,8 @@ int _net_dbus_config_save_configurations(network_info_s *network_info,
 
 int _net_dbus_config_save_eap_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, net_eap_config_s *eap_config, gboolean is_hidden, gboolean is_created)
+               const gchar *proxy_address, net_eap_config_s *eap_config, guint32 frequency,
+               gboolean is_hidden, gboolean is_created)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3388,6 +3390,7 @@ int _net_dbus_config_save_eap_configurations(network_info_s *network_info,
                g_variant_builder_add(b, "{sv}", WIFI_CONFIG_PROXYADDRESS, g_variant_new_string(proxy_address));
        if (is_hidden == TRUE)
                g_variant_builder_add(b, "{sv}", WIFI_CONFIG_HIDDEN, g_variant_new_string("TRUE"));
+       g_variant_builder_add(b, "{sv}", WIFI_CONFIG_FREQUENCY, g_variant_new_uint32(frequency));
        g_variant_builder_add(b, "{sv}", WIFI_CONFIG_CREATED, g_variant_new_boolean(is_created));
 
        if (eap_config != NULL) {
@@ -3472,7 +3475,8 @@ int _net_dbus_config_remove_configurations(network_info_s *network_info,
 int _net_dbus_config_load_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, gchar **passphrase,
                net_wifi_security_type_e *security_type, gchar **proxy_address,
-               gboolean *is_hidden, net_ip_info_config_s **ip_info, void *last_error)
+               gboolean *is_hidden, net_ip_info_config_s **ip_info,
+               guint32 *frequency, void *last_error)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3511,6 +3515,8 @@ int _net_dbus_config_load_configurations(network_info_s *network_info,
                                        *is_hidden = TRUE;
                                else
                                        *is_hidden = FALSE;
+                       } else if (g_strcmp0(field, WIFI_CONFIG_FREQUENCY) == 0) {
+                               *frequency = g_variant_get_uint32(value);
                        } else if (g_strcmp0(field, WIFI_CONFIG_PROXYADDRESS) == 0) {
                                const gchar *r_proxy_address = g_variant_get_string(value, NULL);
                                if (g_strcmp0(r_proxy_address, "NONE") == 0)
@@ -3562,7 +3568,8 @@ int _net_dbus_config_load_configurations(network_info_s *network_info,
 
 int _net_dbus_config_load_eap_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, net_wifi_security_type_e *security_type,
-               gchar **proxy_address, gboolean *is_hidden, net_eap_config_s **eap_config, void *last_error)
+               gchar **proxy_address, gboolean *is_hidden, net_eap_config_s **eap_config,
+               guint32 *frequency, void *last_error)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3598,6 +3605,8 @@ int _net_dbus_config_load_eap_configurations(network_info_s *network_info,
                                        *is_hidden = TRUE;
                                else
                                        *is_hidden = FALSE;
+                       } else if (g_strcmp0(field, WIFI_CONFIG_FREQUENCY) == 0) {
+                               *frequency = g_variant_get_uint32(value);
                        } else if (g_strcmp0(field, WIFI_CONFIG_PROXYADDRESS) == 0) {
                                const gchar *r_proxy_address = g_variant_get_string(value, NULL);
                                if (g_strcmp0(r_proxy_address, "NONE") == 0)
index a679d9a..ac9f36b 100755 (executable)
@@ -3340,7 +3340,7 @@ int net_config_get_passphrase(network_info_s *network_info,
 
 int net_config_save_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, net_ip_info_config_s *ip_info,
+               const gchar *proxy_address, net_ip_info_config_s *ip_info, guint32 frequency,
                gboolean is_hidden, gboolean is_created)
 {
        __NETWORK_FUNC_ENTER__;
@@ -3349,7 +3349,7 @@ int net_config_save_configurations(network_info_s *network_info,
 
        Error = _net_dbus_config_save_configurations(network_info,
                        config_id, name, ssid, passphrase, proxy_address,
-                       ip_info, is_hidden, is_created);
+                       ip_info, frequency, is_hidden, is_created);
        if (Error != NET_ERR_NONE)
                WIFI_LOG(WIFI_ERROR, //LCOV_EXCL_LINE
                                "Failed to save configurations. Error [%s]",
@@ -3362,7 +3362,8 @@ int net_config_save_configurations(network_info_s *network_info,
 //LCOV_EXCL_START
 int net_config_save_eap_configurations(network_info_s *network_info,
                const gchar *config_id, const gchar *name, const gchar *ssid, const gchar *passphrase,
-               const gchar *proxy_address, void *eap_config, gboolean is_hidden, gboolean is_created)
+               const gchar *proxy_address, void *eap_config, guint32 frequency,
+               gboolean is_hidden, gboolean is_created)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3370,8 +3371,8 @@ int net_config_save_eap_configurations(network_info_s *network_info,
        net_eap_config_s *net_eap_config = (net_eap_config_s *)eap_config;
 
        Error = _net_dbus_config_save_eap_configurations(network_info,
-                               config_id, name, ssid, passphrase,
-                               proxy_address, net_eap_config, is_hidden, is_created);
+                               config_id, name, ssid, passphrase, proxy_address,
+                               net_eap_config, frequency, is_hidden, is_created);
        if (Error != NET_ERR_NONE)
                WIFI_LOG(WIFI_ERROR,
                                "Failed to save configurations. Error [%s]",
@@ -3400,9 +3401,9 @@ int net_config_remove_configurations(network_info_s *network_info,
 }
 
 int net_config_load_configurations(network_info_s *network_info,
-               const gchar *config_id, gchar **name,
-               gchar **passphrase, void *security_type, gchar **proxy_address, gboolean *is_hidden,
-               net_ip_info_config_s **ip_info, void *last_error)
+               const gchar *config_id, gchar **name, gchar **passphrase, void *security_type,
+               gchar **proxy_address, gboolean *is_hidden, net_ip_info_config_s **ip_info,
+               guint32 *frequency, void *last_error)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3411,7 +3412,7 @@ int net_config_load_configurations(network_info_s *network_info,
 
        Error = _net_dbus_config_load_configurations(network_info,
                                config_id, name, passphrase, sec_type, proxy_address,
-                               is_hidden, ip_info, last_error);
+                               is_hidden, ip_info, frequency, last_error);
        if (Error != NET_ERR_NONE)
                WIFI_LOG(WIFI_ERROR, //LCOV_EXCL_LINE
                                "Failed to load configurations. Error [%s]",
@@ -3424,7 +3425,7 @@ int net_config_load_configurations(network_info_s *network_info,
 //LCOV_EXCL_START
 int net_config_load_eap_configurations(network_info_s *network_info,
                const gchar *config_id, gchar **name, void *security_type, gchar **proxy_address,
-               gboolean *is_hidden, void **eap_config, void *last_error)
+               gboolean *is_hidden, void **eap_config, guint32 *frequency, void *last_error)
 {
        __NETWORK_FUNC_ENTER__;
 
@@ -3434,7 +3435,7 @@ int net_config_load_eap_configurations(network_info_s *network_info,
 
        Error = _net_dbus_config_load_eap_configurations(network_info,
                                config_id, name, sec_type, proxy_address, is_hidden,
-                               net_eap_config, last_error);
+                               net_eap_config, frequency, last_error);
        if (Error != NET_ERR_NONE)
                WIFI_LOG(WIFI_ERROR,
                                "Failed to load eap configurations. Error [%s]",
index 5098f15..d22ad34 100755 (executable)
@@ -258,13 +258,11 @@ EXPORT_API int wifi_manager_config_save(wifi_manager_h wifi,
        }
 
        if (h->security_type == WIFI_MANAGER_SECURITY_TYPE_EAP) {
-               ret = _wifi_save_eap_configurations(wifi, h->name, h->passphrase, h->security_type,
-                       h->proxy_address, h->eap_config, h->is_hidden, h->is_created);
+               ret = _wifi_save_eap_configurations(wifi, h);
                if (ret != WIFI_MANAGER_ERROR_NONE)
                        WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_eap_configurations"); //LCOV_EXCL_LINE
        } else {
-               ret = _wifi_save_configuration(wifi, h->name, h->passphrase, h->security_type,
-                               h->proxy_address, h->ip_info, h->is_hidden, h->is_created);
+               ret = _wifi_save_configuration(wifi, h);
                if (ret != WIFI_MANAGER_ERROR_NONE)
                        WIFI_LOG(WIFI_ERROR, "Fail to save configurations [%d]", ret); //LCOV_EXCL_LINE
        }
@@ -896,6 +894,48 @@ EXPORT_API int wifi_manager_config_set_dns_address(wifi_manager_config_h config,
        return WIFI_MANAGER_ERROR_NONE;
 }
 
+EXPORT_API int wifi_manager_config_get_frequency(wifi_manager_config_h config,
+               int *frequency)
+{
+       __NETWORK_CAPI_FUNC_ENTER__;
+
+       CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+
+       wifi_config_s *h = (wifi_config_s *)config;
+
+       if (_wifi_check_config_validity(config) == false || frequency == NULL) {
+               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
+       }
+
+       *frequency = h->frequency;
+
+       __NETWORK_CAPI_FUNC_EXIT__;
+       return WIFI_MANAGER_ERROR_NONE;
+}
+
+EXPORT_API int wifi_manager_config_set_frequency(wifi_manager_config_h config,
+               int frequency)
+{
+       __NETWORK_CAPI_FUNC_ENTER__;
+
+       CHECK_FEATURE_SUPPORTED(WIFI_FEATURE);
+
+       wifi_config_s *h = (wifi_config_s *)config;
+
+       if (_wifi_check_config_validity(config) == false || frequency < 0) {
+               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->frequency = frequency;
+
+       __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)
 {
index 5763521..f40bb57 100755 (executable)
@@ -607,17 +607,15 @@ static int __connect_with_wifi_info(wifi_manager_handle_s *wifi_handle,
 }
 
 static int __load_configurations(wifi_manager_handle_s *wifi_handle,
-               const gchar *config_id, gchar **name,
-               gchar **passphrase, wifi_manager_security_type_e *security_type, gchar **proxy_address,
-               gboolean *is_hidden, wifi_config_ip_info_s **ip_info,
-               wifi_manager_error_e *last_error)
+               const gchar *config_id, wifi_config_s *config)
 {
        int rv;
 
        rv = net_config_load_configurations(wifi_handle->network_info,
-                               config_id, name, passphrase, security_type,
-                               proxy_address, is_hidden, (net_ip_info_config_s **)ip_info,
-                               last_error);
+                               config_id, &config->name, &config->passphrase,
+                               &config->security_type, &config->proxy_address,
+                               &config->is_hidden, (net_ip_info_config_s **)&config->ip_info,
+                               &config->frequency, &config->last_error);
        if (rv == NET_ERR_ACCESS_DENIED) {
                WIFI_LOG(WIFI_ERROR, "Access denied"); //LCOV_EXCL_LINE
                return WIFI_MANAGER_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE
@@ -630,15 +628,15 @@ static int __load_configurations(wifi_manager_handle_s *wifi_handle,
 }
 
 static int __load_eap_configurations(wifi_manager_handle_s *wifi_handle,
-               const gchar *config_id, gchar **name,
-               wifi_manager_security_type_e *security_type, gchar **proxy_address, gboolean *is_hidden,
-               wifi_eap_config_s **eap_config, wifi_manager_error_e *last_error)
+               const gchar *config_id, wifi_config_s *config)
 {
        int rv;
 
        rv = net_config_load_eap_configurations(wifi_handle->network_info,
-                               config_id, name, security_type,
-                               proxy_address, is_hidden, (void **)eap_config, last_error);
+                               config_id, &config->name, &config->security_type,
+                               &config->proxy_address, &config->is_hidden,
+                               (void **)&config->eap_config, &config->frequency,
+                               &config->last_error);
        if (rv == NET_ERR_ACCESS_DENIED) {
                WIFI_LOG(WIFI_ERROR, "Access denied"); //LCOV_EXCL_LINE
                return WIFI_MANAGER_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE
@@ -3042,23 +3040,21 @@ int _wifi_config_get_config_id_list(wifi_manager_h wifi, GSList **list)
        return WIFI_MANAGER_ERROR_NONE;
 }
 
-int _wifi_save_configuration(wifi_manager_h wifi,
-               const gchar *name, const gchar *passphrase,
-               wifi_manager_security_type_e security_type, const gchar *proxy_address,
-               wifi_config_ip_info_s *ip_info, gboolean is_hidden, gboolean is_created)
+int _wifi_save_configuration(wifi_manager_h wifi, wifi_config_s *config)
 {
        int rv;
        wifi_manager_handle_s *wifi_handle = wifi;
        gchar *config_id = NULL;
        gchar *ssid = NULL;
 
-       if (security_type != WIFI_MANAGER_SECURITY_TYPE_NONE) {
-               if (passphrase == NULL) {
+       if (config->security_type != WIFI_MANAGER_SECURITY_TYPE_NONE) {
+               if (config->passphrase == NULL) {
                        WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_configurations " //LCOV_EXCL_LINE
-                                               "[secu_type is not NONE[%d] but passphrase is NULL]", security_type);
+                                               "[secu_type is not NONE[%d] but passphrase is NULL]",
+                                               config->security_type);
                        return WIFI_MANAGER_ERROR_INVALID_PARAMETER; //LCOV_EXCL_LINE
                } else {
-                       if (strlen(passphrase) == 0) {
+                       if (strlen(config->passphrase) == 0) {
                                WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_configurations " //LCOV_EXCL_LINE
                                                        "passphrase length is 0");
                                return WIFI_MANAGER_ERROR_INVALID_PARAMETER; //LCOV_EXCL_LINE
@@ -3066,12 +3062,13 @@ int _wifi_save_configuration(wifi_manager_h wifi,
                }
        }
 
-       config_id = _wifi_config_get_config_id(name, security_type);
-       ssid = __wifi_change_name_to_hexadecimal(name);
+       config_id = _wifi_config_get_config_id(config->name, config->security_type);
+       ssid = __wifi_change_name_to_hexadecimal(config->name);
 
        rv = net_config_save_configurations(wifi_handle->network_info,
-                       config_id, name, ssid, passphrase,
-                       proxy_address, (void *)ip_info, is_hidden, is_created);
+                       config_id, config->name, ssid, config->passphrase,
+                       config->proxy_address, (void *)config->ip_info,
+                       config->frequency, config->is_hidden, config->is_created);
        if (rv == NET_ERR_ACCESS_DENIED) {
                WIFI_LOG(WIFI_ERROR, "Access denied"); //LCOV_EXCL_LINE
                return WIFI_MANAGER_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE
@@ -3119,17 +3116,14 @@ int _wifi_load_configurations(wifi_manager_h wifi)
                                g_free(h);//LCOV_EXCL_LINE
                                break;//LCOV_EXCL_LINE
                        }
-                       rv = __load_eap_configurations(wifi_handle, id, &h->name,
-                               &h->security_type, &h->proxy_address, &h->is_hidden, &h->eap_config, &h->last_error);
+                       rv = __load_eap_configurations(wifi_handle, id, h);
                } else {
                        h->ip_info = g_new0(wifi_config_ip_info_s, 1);
                        if (h->ip_info == NULL) {
                                g_free(h);//LCOV_EXCL_LINE
                                break;//LCOV_EXCL_LINE
                        }
-                       rv = __load_configurations(wifi_handle, id, &h->name, &h->passphrase, &h->security_type,
-                                                          &h->proxy_address, &h->is_hidden, &h->ip_info,
-                                                          &h->last_error);
+                       rv = __load_configurations(wifi_handle, id, h);
                }
 
                if (rv != WIFI_MANAGER_ERROR_NONE) {
@@ -3237,39 +3231,37 @@ int _wifi_remove_configuration(wifi_manager_h wifi, const gchar *config_id)
 }
 
 //LCOV_EXCL_START
-int _wifi_save_eap_configurations(wifi_manager_h wifi,
-               const gchar *name, const gchar *passphrase,
-               wifi_manager_security_type_e security_type, const gchar *proxy_address,
-               wifi_eap_config_s *eap_config, gboolean is_hidden, gboolean is_created)
+int _wifi_save_eap_configurations(wifi_manager_h wifi, wifi_config_s *config)
 {
        int rv;
        wifi_manager_handle_s *wifi_handle = wifi;
        gchar *config_id = NULL;
        gchar *ssid = NULL;
 
-       if (security_type != WIFI_MANAGER_SECURITY_TYPE_EAP) {
+       if (config->security_type != WIFI_MANAGER_SECURITY_TYPE_EAP) {
                WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_configurations "
-                                       "[secu_type is not EAP[%d]]", security_type);
+                                       "[secu_type is not EAP[%d]]", config->security_type);
                return WIFI_MANAGER_ERROR_INVALID_PARAMETER;
        }
 
-       if (passphrase == NULL) {
+       if (config->passphrase == NULL) {
                WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_configurations [secu_type is not NONE[%d] "
-                                       "but passphrase is NULL]", security_type);
+                                       "but passphrase is NULL]", config->security_type);
                return WIFI_MANAGER_ERROR_INVALID_PARAMETER;
        } else {
-               if (strlen(passphrase) == 0) {
+               if (strlen(config->passphrase) == 0) {
                        WIFI_LOG(WIFI_ERROR, "Fail to wifi_save_configurations passphrase length is 0");
                        return WIFI_MANAGER_ERROR_INVALID_PARAMETER;
                }
        }
 
-       config_id = _wifi_config_get_config_id(name, security_type);
-       ssid = __wifi_change_name_to_hexadecimal(name);
+       config_id = _wifi_config_get_config_id(config->name, config->security_type);
+       ssid = __wifi_change_name_to_hexadecimal(config->name);
 
        rv = net_config_save_eap_configurations(wifi_handle->network_info,
-                       config_id, name, ssid, passphrase,
-                       proxy_address, (void *)eap_config, is_hidden, is_created);
+                       config_id, config->name, ssid, config->passphrase,
+                       config->proxy_address, (void *)config->eap_config,
+                       config->frequency, config->is_hidden, config->is_created);
        if (rv == NET_ERR_ACCESS_DENIED) {
                WIFI_LOG(WIFI_ERROR, "Access denied"); //LCOV_EXCL_LINE
                return WIFI_MANAGER_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE