diff options
author | Bastien Nocera <hadess@hadess.net> | 2009-06-12 11:34:17 +0100 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2009-06-17 17:41:47 -0400 |
commit | 52a458bf5b3b47c234681cf3658a07f5b2e83870 (patch) | |
tree | 1cbfb53f2b4ddc8a7ee35e093ed2f3c54206729a | |
parent | 5a6c0d4ef9918f61251ee2c04d3ec372d64ddbf0 (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.in | 2 | ||||
-rw-r--r-- | src/daemon/xdg-hostname-daemon.c | 16 |
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); |