summaryrefslogtreecommitdiffstats
path: root/bus
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2004-08-26 17:26:06 +0000
committerJon Trowbridge <trow@ximian.com>2004-08-26 17:26:06 +0000
commit2091cdd4e1c58318ac75533e2ea4a92292e1783c (patch)
tree85b55a61fd22ea4db27b1b41e78c959e575db440 /bus
parentb78d222083d1a1186743e2bb3aded49b5a950fe2 (diff)
2004-08-26 Jon Trowbridge <trow@ximian.com>
* bus/driver.c (bus_driver_handle_service_exists): Respond with TRUE if we are inquiring about the existence of the built-in org.freedesktop.DBus service.
Diffstat (limited to 'bus')
-rw-r--r--bus/driver.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/bus/driver.c b/bus/driver.c
index 9923f121..90659cd2 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -511,6 +511,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
DBusMessage *reply;
DBusString service_name;
BusService *service;
+ dbus_bool_t service_exists;
char *name;
dbus_bool_t retval;
BusRegistry *registry;
@@ -525,10 +526,18 @@ bus_driver_handle_service_exists (DBusConnection *connection,
return FALSE;
retval = FALSE;
+
+ if (strcmp (name, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS) == 0)
+ {
+ service_exists = TRUE;
+ }
+ else
+ {
+ _dbus_string_init_const (&service_name, name);
+ service = bus_registry_lookup (registry, &service_name);
+ service_exists = service != NULL;
+ }
- _dbus_string_init_const (&service_name, name);
- service = bus_registry_lookup (registry, &service_name);
-
reply = dbus_message_new_method_return (message);
if (reply == NULL)
{
@@ -537,7 +546,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
}
if (!dbus_message_append_args (reply,
- DBUS_TYPE_BOOLEAN, service != NULL,
+ DBUS_TYPE_BOOLEAN, service_exists,
0))
{
BUS_SET_OOM (error);