diff options
author | Rodrigo Moya <rodrigo.moya@collabora.co.uk> | 2012-05-30 16:34:24 +0200 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2012-05-30 16:34:24 +0200 |
commit | a2a45453b51211ca25c7a979e6e1062e4954d7e5 (patch) | |
tree | 787313a34c30480f51738747891363b06e30a522 | |
parent | a16d0aa956b66a3c04ac85251d035ca700f78a2e (diff) | |
download | dbus-a2a45453b51211ca25c7a979e6e1062e4954d7e5.tar.gz |
Don't create a separate transaction for the AF_BUS.Forwarded signal
-rw-r--r-- | bus/dispatch.c | 3 | ||||
-rw-r--r-- | bus/driver-afbus.c | 18 | ||||
-rw-r--r-- | bus/driver-afbus.h | 6 | ||||
-rw-r--r-- | bus/driver.c | 3 |
4 files changed, 12 insertions, 18 deletions
diff --git a/bus/dispatch.c b/bus/dispatch.c index 16a93cb5..fdda8ba8 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -134,7 +134,8 @@ bus_dispatch_matches (BusTransaction *transaction, /* If using AF_BUS and the message came to the daemon, the client sending * the message doesn't yet know the address for this service, so notify * it of the address associated with the service. */ - if (!bus_driver_afbus_emit_forwarded (sender, + if (!bus_driver_afbus_emit_forwarded (transaction, + sender, addressed_recipient, dbus_message_get_destination (message))) { diff --git a/bus/driver-afbus.c b/bus/driver-afbus.c index ab162cd7..235a52ee 100644 --- a/bus/driver-afbus.c +++ b/bus/driver-afbus.c @@ -212,7 +212,8 @@ bus_driver_afbus_append_unique_name (DBusConnection *connection, } dbus_bool_t -bus_driver_afbus_emit_forwarded (DBusConnection *connection, +bus_driver_afbus_emit_forwarded (BusTransaction *transaction, + DBusConnection *connection, DBusConnection *addressed_recipient, const char *service_name) { @@ -220,7 +221,6 @@ bus_driver_afbus_emit_forwarded (DBusConnection *connection, long len = sizeof (address); DBusMessage *message; BusContext *context; - BusTransaction *transaction = NULL; dbus_bool_t result = FALSE; memset (&address, 0, sizeof (address)); @@ -255,24 +255,12 @@ bus_driver_afbus_emit_forwarded (DBusConnection *connection, goto out; } - /* Prepare transaction */ - context = bus_connection_get_context (connection); - transaction = bus_transaction_new (context); - if (transaction == NULL) - { - _dbus_verbose ("Could not create transaction\n"); - goto out; - } - - if (bus_transaction_send (transaction, addressed_recipient, message)) + if (bus_transaction_send (transaction, connection, message)) result = TRUE; else _dbus_verbose ("Could not send AF_BUS.Forwarded signal message\n"); out: - if (transaction != NULL) - bus_transaction_execute_and_free (transaction); - dbus_message_unref (message); return result; diff --git a/bus/driver-afbus.h b/bus/driver-afbus.h index 90779b7e..560f543a 100644 --- a/bus/driver-afbus.h +++ b/bus/driver-afbus.h @@ -34,7 +34,8 @@ dbus_bool_t bus_driver_afbus_upload_match_rule (DBusConnection *connection, DBusError *error); dbus_bool_t bus_driver_afbus_append_unique_name (DBusConnection *connection, DBusString *str); -dbus_bool_t bus_driver_afbus_emit_forwarded (DBusConnection *connection, +dbus_bool_t bus_driver_afbus_emit_forwarded (BusTransaction *transaction, + DBusConnection *connection, DBusConnection *addressed_recipient, const char *service_name); #else @@ -54,7 +55,8 @@ dbus_bool_t bus_driver_afbus_append_unique_name (DBusConnection *connection, } inline -dbus_bool_t bus_driver_afbus_emit_forwarded (DBusConnection *connection, +dbus_bool_t bus_driver_afbus_emit_forwarded (BusTransaction *transaction, + DBusConnection *connection, DBusConnection *addressed_recipient, const char *service_name) { diff --git a/bus/driver.c b/bus/driver.c index cae4aaa4..ef85a731 100644 --- a/bus/driver.c +++ b/bus/driver.c @@ -616,6 +616,9 @@ bus_driver_handle_acquire_service (DBusConnection *connection, goto out; } +#ifdef HAVE_AFBUS +#endif + retval = TRUE; out: |