DBG("-\n");
}
-static int __prepare_softap_settings(softap_h softap, _softap_settings_t *set)
+static GVariant *__prepare_softap_settings(softap_h softap)
{
DBG("+");
__softap_h *sa = (__softap_h *) softap;
-
- if (sa == NULL || set == NULL) {
+ if (sa == NULL) {
ERR("Parameter is NULL!!");
- return SOFTAP_ERROR_INVALID_PARAMETER;
+ return NULL;
}
- g_strlcpy(set->ssid, sa->ssid, sizeof(set->ssid));
- set->sec_type = sa->sec_type;
- set->visibility = sa->visibility;
- set->channel = sa->channel;
+ GVariantBuilder *builder = NULL;
+ GVariant *params = NULL;
- if (set->sec_type == SOFTAP_SECURITY_TYPE_NONE)
- g_strlcpy(set->key, "", sizeof(set->key));
- else
- g_strlcpy(set->key, sa->passphrase, sizeof(set->key));
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ if (builder == NULL) {
+ ERR("Failed to create builder");
+ return NULL;
+ }
+
+ g_variant_builder_add(builder, "{sv}", "ssid", g_variant_new_string(sa->ssid));
+ g_variant_builder_add(builder, "{sv}", "sec_type", g_variant_new_int32(sa->sec_type));
+ g_variant_builder_add(builder, "{sv}", "visibility", g_variant_new_boolean(sa->visibility));
+ g_variant_builder_add(builder, "{sv}", "channel", g_variant_new_int32(sa->channel));
+
+ if (sa->sec_type != SOFTAP_SECURITY_TYPE_NONE)
+ g_variant_builder_add(builder, "{sv}", "passphrase", g_variant_new_string(sa->passphrase));
if (strlen(sa->vendor))
- g_strlcpy(set->vendor, sa->vendor, sizeof(set->vendor));
+ g_variant_builder_add(builder, "{sv}", "vendor", g_variant_new_string(sa->vendor));
+
+ params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+ g_variant_builder_unref(builder);
DBG("-");
- return SOFTAP_ERROR_NONE;
+ return params;
}
static void __connect_signals(softap_h softap)
_retvm_if(softap == NULL, SOFTAP_ERROR_INVALID_PARAMETER,
"parameter(softap) is NULL");
- softap_error_e ret = SOFTAP_ERROR_NONE;
__softap_h *sa = (__softap_h *) softap;
GDBusProxy *proxy = sa->client_bus_proxy;
GDBusConnection *connection = sa->client_bus;
+ GVariant *settings = NULL;
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_INFINITE);
- _softap_settings_t set = {"", "", "", 0, false, 0};
-
- ret = __prepare_softap_settings(softap, &set);
- if (ret != SOFTAP_ERROR_NONE) {
+ settings = __prepare_softap_settings(softap);
+ if (!settings) {
ERR("Fail to initialize softap settings\n");
return SOFTAP_ERROR_OPERATION_FAILED;
}
g_dbus_connection_signal_unsubscribe(connection, sigs[E_SIGNAL_SOFTAP_ON].sig_id);
-
- g_dbus_proxy_call(proxy, "enable",
- g_variant_new("(sssiii)", set.ssid, set.key, set.vendor, set.visibility, set.sec_type, set.channel),
- G_DBUS_CALL_FLAGS_NONE, -1, sa->cancellable, (GAsyncReadyCallback) __enabled_cfm_cb, (gpointer)softap);
-
+ g_dbus_proxy_call(proxy, "enable", settings, G_DBUS_CALL_FLAGS_NONE, -1,
+ sa->cancellable, (GAsyncReadyCallback) __enabled_cfm_cb, (gpointer)softap);
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_USE_DEFAULT);
- DBG("-");
+ DBG("-");
return SOFTAP_ERROR_NONE;
}
"parameter(callback) is NULL\n");
__softap_h *sa = (__softap_h *)softap;
- _softap_settings_t set = {"", "", "", 0, false, 0};
GDBusProxy *proxy = sa->client_bus_proxy;
- int ret = 0;
+ GVariant *settings = NULL;
DBG("+");
return SOFTAP_ERROR_OPERATION_FAILED;
}
- ret = __prepare_softap_settings(softap, &set);
- if (ret != SOFTAP_ERROR_NONE) {
+ settings = __prepare_softap_settings(softap);
+ if (!settings) {
ERR("softap settings initialization failed\n");
return SOFTAP_ERROR_OPERATION_FAILED;
}
sa->settings_reloaded_cb = callback;
sa->settings_reloaded_user_data = user_data;
- g_dbus_proxy_call(proxy, "reload_settings",
- g_variant_new("(sssiii)", set.ssid, set.key, set.vendor, set.visibility, set.sec_type, set.channel),
+ g_dbus_proxy_call(proxy, "reload_settings", settings,
G_DBUS_CALL_FLAGS_NONE, -1, sa->cancellable,
(GAsyncReadyCallback) __settings_reloaded_cb, (gpointer)softap);