summaryrefslogtreecommitdiffstats
path: root/bus/services.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/services.c')
-rw-r--r--bus/services.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/bus/services.c b/bus/services.c
index f5ef4cc2..0ba3225d 100644
--- a/bus/services.c
+++ b/bus/services.c
@@ -164,7 +164,10 @@ bus_registry_ensure (BusRegistry *registry,
return NULL;
}
- if (!bus_driver_send_service_created (service->name, transaction, error))
+ if (!bus_driver_send_service_owner_changed (service->name,
+ NULL,
+ bus_connection_get_name (owner_if_created),
+ transaction, error))
{
bus_service_unref (service);
return NULL;
@@ -726,20 +729,31 @@ bus_service_remove_owner (BusService *service,
}
else if (_dbus_list_length_is_one (&service->owners))
{
- if (!bus_driver_send_service_deleted (service->name,
- transaction, error))
+ if (!bus_driver_send_service_owner_changed (service->name,
+ bus_connection_get_name (owner),
+ NULL,
+ transaction, error))
return FALSE;
}
else
{
DBusList *link;
+ DBusConnection *new_owner;
link = _dbus_list_get_first_link (&service->owners);
_dbus_assert (link != NULL);
link = _dbus_list_get_next_link (&service->owners, link);
_dbus_assert (link != NULL);
+ new_owner = link->data;
+
+ if (!bus_driver_send_service_owner_changed (service->name,
+ bus_connection_get_name (owner),
+ bus_connection_get_name (new_owner),
+ transaction, error))
+ return FALSE;
+
/* This will be our new owner */
- if (!bus_driver_send_service_acquired (link->data,
+ if (!bus_driver_send_service_acquired (new_owner,
service->name,
transaction,
error))