summaryrefslogtreecommitdiffstats
path: root/bus/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/driver.c')
-rw-r--r--bus/driver.c72
1 files changed, 20 insertions, 52 deletions
diff --git a/bus/driver.c b/bus/driver.c
index 39d8b126..b426912f 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -39,20 +39,25 @@ static dbus_bool_t bus_driver_send_welcome_message (DBusConnection *connection,
DBusError *error);
dbus_bool_t
-bus_driver_send_service_deleted (const char *service_name,
- BusTransaction *transaction,
- DBusError *error)
+bus_driver_send_service_owner_changed (const char *service_name,
+ const char *old_owner,
+ const char *new_owner,
+ BusTransaction *transaction,
+ DBusError *error)
{
DBusMessage *message;
dbus_bool_t retval;
+ const char null_service[] = { '\000' };
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
- _dbus_verbose ("sending service deleted: %s\n", service_name);
+ _dbus_verbose ("sending service owner changed: %s [%s -> %s]", service_name,
+ old_owner ? old_owner : null_service,
+ new_owner ? new_owner : null_service);
message = dbus_message_new_signal (DBUS_PATH_ORG_FREEDESKTOP_DBUS,
DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS,
- "ServiceDeleted");
+ "ServiceOwnerChanged");
if (message == NULL)
{
@@ -60,62 +65,25 @@ bus_driver_send_service_deleted (const char *service_name,
return FALSE;
}
- if (!dbus_message_set_sender (message, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS) ||
- !dbus_message_append_args (message,
+ if (!dbus_message_set_sender (message, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS))
+ goto oom;
+
+ if (!dbus_message_append_args (message,
DBUS_TYPE_STRING, service_name,
+ DBUS_TYPE_STRING, old_owner ? old_owner : null_service,
+ DBUS_TYPE_STRING, new_owner ? new_owner : null_service,
DBUS_TYPE_INVALID))
- {
- dbus_message_unref (message);
- BUS_SET_OOM (error);
- return FALSE;
- }
+ goto oom;
retval = bus_dispatch_matches (transaction, NULL, NULL, message, error);
dbus_message_unref (message);
return retval;
-}
-dbus_bool_t
-bus_driver_send_service_created (const char *service_name,
- BusTransaction *transaction,
- DBusError *error)
-{
- DBusMessage *message;
- dbus_bool_t retval;
-
- _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
- message = dbus_message_new_signal (DBUS_PATH_ORG_FREEDESKTOP_DBUS,
- DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS,
- "ServiceCreated");
-
- if (message == NULL)
- {
- BUS_SET_OOM (error);
- return FALSE;
- }
-
- if (!dbus_message_set_sender (message, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS))
- {
- dbus_message_unref (message);
- BUS_SET_OOM (error);
- return FALSE;
- }
-
- if (!dbus_message_append_args (message,
- DBUS_TYPE_STRING, service_name,
- DBUS_TYPE_INVALID))
- {
- dbus_message_unref (message);
- BUS_SET_OOM (error);
- return FALSE;
- }
-
- retval = bus_dispatch_matches (transaction, NULL, NULL, message, error);
+ oom:
dbus_message_unref (message);
-
- return retval;
+ BUS_SET_OOM (error);
+ return FALSE;
}
dbus_bool_t