From 17b080f36a7e25accad02b137e059b7a75f5c7cd Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Wed, 10 Nov 2021 10:56:53 +0900 Subject: [PATCH] Add a DBus method to access vconf via DBus Change-Id: I62dd5fe43506e1bb7f09b069b4e2c1e01324d5e6 Signed-off-by: Jaehyun Kim --- interfaces/netconfig-iface-network-state.xml | 7 ++++++ .../etc/dbus-1/system.d/net-config-robot.conf | 1 + resources/etc/dbus-1/system.d/net-config.conf | 1 + src/network-state.c | 26 ++++++++++++++++++++++ 4 files changed, 35 insertions(+) diff --git a/interfaces/netconfig-iface-network-state.xml b/interfaces/netconfig-iface-network-state.xml index 5b8b46a..ddcafe6 100755 --- a/interfaces/netconfig-iface-network-state.xml +++ b/interfaces/netconfig-iface-network-state.xml @@ -42,6 +42,13 @@ + + + + + + + diff --git a/resources/etc/dbus-1/system.d/net-config-robot.conf b/resources/etc/dbus-1/system.d/net-config-robot.conf index 7c497e2..1f3150e 100755 --- a/resources/etc/dbus-1/system.d/net-config-robot.conf +++ b/resources/etc/dbus-1/system.d/net-config-robot.conf @@ -48,6 +48,7 @@ + diff --git a/resources/etc/dbus-1/system.d/net-config.conf b/resources/etc/dbus-1/system.d/net-config.conf index c651886..a8cb76b 100755 --- a/resources/etc/dbus-1/system.d/net-config.conf +++ b/resources/etc/dbus-1/system.d/net-config.conf @@ -48,6 +48,7 @@ + diff --git a/src/network-state.c b/src/network-state.c index a137aff..586ef7f 100755 --- a/src/network-state.c +++ b/src/network-state.c @@ -1440,6 +1440,30 @@ gboolean handle_preferred_ipv6_address(Network *object, return TRUE; } +gboolean handle_request_vconf_value(Network *object, + GDBusMethodInvocation *context, gchar *key, gchar *type) +{ + int ret = 0; + int int_value = 0; + char *str_value = ""; + + if (!g_strcmp0(type, "string")) + str_value = vconf_get_str(key); + else if (!g_strcmp0(type, "int")) + ret = vconf_get_int(key, &int_value); + else if (!g_strcmp0(type, "bool")) + ret = vconf_get_bool(key, &int_value); + + DBG("Vconf key: %s, type: %s, int_value: %d, str_value: %s, ret: %d", + key, type, int_value, str_value, ret); + network_complete_request_vconf_value(object, context, ret, int_value, str_value); + + if (!g_strcmp0(type, "string")) + g_free(str_value); + + return TRUE; +} + gboolean handle_get_battery_dn_list(Battery *object, GDBusMethodInvocation *context) { @@ -1530,6 +1554,8 @@ void state_object_create_and_init(void) G_CALLBACK(handle_device_policy_get_wifi_profile), NULL); g_signal_connect(netconfigstate, "handle-get-metered-info", G_CALLBACK(handle_get_metered_info), NULL); + g_signal_connect(netconfigstate, "handle-request-vconf-value", + G_CALLBACK(handle_request_vconf_value), NULL); if (!g_dbus_interface_skeleton_export(interface_network, connection, NETCONFIG_NETWORK_STATE_PATH, NULL)) { -- 2.7.4