summaryrefslogtreecommitdiffstats
path: root/bus
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-10-22 16:01:08 +0000
committerHavoc Pennington <hp@redhat.com>2003-10-22 16:01:08 +0000
commiteb9aa9da9564f2df788580394e67ae6105e517fb (patch)
treec04ed9d5e081bcfc1e050ed960c488bad3f617de /bus
parent10faede1eec77b0687ad007fa59608e96d80317d (diff)
2003-10-22 Havoc Pennington <hp@redhat.com>
* bus/bus.c (bus_context_check_security_policy): fix up assertion * bus/connection.c (bus_transaction_send_from_driver): set the destination to the connection's base service
Diffstat (limited to 'bus')
-rw-r--r--bus/bus.c4
-rw-r--r--bus/connection.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/bus/bus.c b/bus/bus.c
index 43882c59..69359456 100644
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -919,9 +919,9 @@ bus_context_check_security_policy (BusContext *context,
type = dbus_message_get_type (message);
/* dispatch.c was supposed to ensure these invariants */
- /* FIXME this assertion is failing in make check */
_dbus_assert (dbus_message_get_destination (message) != NULL ||
- type == DBUS_MESSAGE_TYPE_SIGNAL);
+ type == DBUS_MESSAGE_TYPE_SIGNAL ||
+ (sender == NULL && !bus_connection_is_active (proposed_recipient)));
_dbus_assert (type == DBUS_MESSAGE_TYPE_SIGNAL ||
addressed_recipient != NULL ||
strcmp (dbus_message_get_destination (message), DBUS_SERVICE_ORG_FREEDESKTOP_DBUS) == 0);
diff --git a/bus/connection.c b/bus/connection.c
index 65ebdb28..db9cbaa8 100644
--- a/bus/connection.c
+++ b/bus/connection.c
@@ -1862,6 +1862,13 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
if (!dbus_message_set_sender (message, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS))
return FALSE;
+ if (bus_connection_is_active (connection))
+ {
+ if (!dbus_message_set_destination (message,
+ bus_connection_get_name (connection)))
+ return FALSE;
+ }
+
/* bus driver never wants a reply */
dbus_message_set_no_reply (message, TRUE);