summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2009-06-12 11:34:17 +0100
committerDavid Zeuthen <davidz@redhat.com>2009-06-17 17:41:47 -0400
commit52a458bf5b3b47c234681cf3658a07f5b2e83870 (patch)
tree1cbfb53f2b4ddc8a7ee35e093ed2f3c54206729a
parent5a6c0d4ef9918f61251ee2c04d3ec372d64ddbf0 (diff)
Fix problems with introspection
The can-set-data property was declared but not implemented, also poke holes in the default D-Bus configuration. Fixes crashers when loading d-feet onto a running daemon.
-rw-r--r--data/org.freedesktop.Hostname1.conf.in2
-rw-r--r--src/daemon/xdg-hostname-daemon.c16
2 files changed, 18 insertions, 0 deletions
diff --git a/data/org.freedesktop.Hostname1.conf.in b/data/org.freedesktop.Hostname1.conf.in
index 9562657..9294d72 100644
--- a/data/org.freedesktop.Hostname1.conf.in
+++ b/data/org.freedesktop.Hostname1.conf.in
@@ -14,5 +14,7 @@
</policy>
<policy context="default">
<allow send_destination="org.freedesktop.Hostname1"/>
+ <allow send_destination="org.freedesktop.Hostname1"
+ send_interface="org.freedesktop.DBus.Introspectable"/>
</policy>
</busconfig>
diff --git a/src/daemon/xdg-hostname-daemon.c b/src/daemon/xdg-hostname-daemon.c
index 5e13ba4..88fff8c 100644
--- a/src/daemon/xdg-hostname-daemon.c
+++ b/src/daemon/xdg-hostname-daemon.c
@@ -99,6 +99,7 @@ enum {
PROP_CAN_SET_HOSTNAME,
PROP_CAN_SET_ICON_NAME,
PROP_CAN_SET_USE_TRANSIENT_DATA,
+ PROP_CAN_SET_DATA,
};
@@ -301,6 +302,13 @@ xdg_hostname_daemon_get_property (GObject *object,
g_value_set_boolean (value, daemon->can_set_use_transient_data);
break;
+ case PROP_CAN_SET_DATA:
+ g_value_set_boolean (value, daemon->can_set_display_hostname ||
+ daemon->can_set_hostname ||
+ daemon->can_set_icon_name ||
+ daemon->can_set_use_transient_data);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -444,6 +452,14 @@ xdg_hostname_daemon_class_init (XdgHostnameDaemonClass *klass)
TRUE,
G_PARAM_READABLE));
+ g_object_class_install_property (object_class,
+ PROP_CAN_SET_DATA,
+ g_param_spec_boolean ("can-set-data",
+ NULL,
+ NULL,
+ TRUE,
+ G_PARAM_READABLE));
+
dbus_g_error_domain_register (XDG_HOSTNAME_ERROR,
"org.freedesktop.Hostname1.Error",
XDG_HOSTNAME_TYPE_ERROR);