-D-Bus 1.10.6 (UNRELEASED)
+D-Bus 1.11.0 (UNRELEASED)
==
+Dependencies:
+
+• On non-Windows platforms, D-Bus requires an <inttypes.h> that defines
+ C99 constants such as PRId64 and PRIu64.
+
+Enhancements:
+
+• D-Bus Specification version 0.27
+ · Specify that services should not reply if NO_REPLY_EXPECTED was used
+ (fd.o #75749, Lars Uebernickel)
+
Fixes:
+• Print 64-bit integers on non-GNU Unix platforms (fd.o #92043, Natanael Copa)
+
+• On Windows, when including configuration files with <include> or
+ <includedir>, apply the same relocation as for the Exec paths
+ in .service files (fd.o #92028, Simon McVittie)
+
+ • On Unix when running tests as root, don't assert that root and
+ the dbus-daemon user can still call UpdateActivationEnvironment;
+ assert that those privileged users can call BecomeMonitor instead
+ (fd.o #93036, Simon McVittie)
+
+ • On Windows, fix a memory leak in the autolaunch transport (fd.o #92899,
+ Simon McVittie)
+
+ • On Windows Autotools builds, don't run tests that rely on
+ dbus-run-session and other Unix-specifics (fd.o #92899, Simon McVittie)
+
+ D-Bus 1.10.4 (2015-11-17)
+ ==
+
+ The “Frostburn Canyon” release.
+
+ Enhancements:
+
+ • GetConnectionCredentials, GetConnectionUnixUser and
+ GetConnectionUnixProcessID with argument "org.freedesktop.DBus"
+ will now return details of the dbus-daemon itself. This is required
+ to be able to call SetEnvironment on systemd.
+ (fd.o #92857, Jan Alexander Steffens)
+
+ Fixes:
+
+ • Make UpdateActivationEnvironment always fail with AccessDenied on the
+ system bus. Previously, it was possible to configure it so root could
+ call it, but the environment variables were not actually used,
+ because the launch helper would discard them.
+ (fd.o #92857, Jan Alexander Steffens)
+
+ • On Unix with --systemd-activation on a user bus, make
+ UpdateActivationEnvironment pass on its arguments to systemd's
+ SetEnvironment method, solving inconsistency between the environments
+ used for traditional activation and systemd user-service activation.
+ (fd.o #92857, Jan Alexander Steffens)
+
• On Windows, don't crash if <syslog/> or --syslog is used
(fd.o #92538, Ralf Habacker)
return TRUE;
}
- if (!bus_transaction_capture (transaction, NULL, message))
+ /*
+ * Send a message from the driver, activating the destination if necessary.
+ * The message must already have a destination set.
+ */
+ static dbus_bool_t
+ bus_driver_send_or_activate (BusTransaction *transaction,
+ DBusMessage *message,
+ DBusError *error)
+ {
+ BusContext *context;
+ BusService *service;
+ const char *service_name;
+ DBusString service_string;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+ service_name = dbus_message_get_destination (message);
+
+ _dbus_assert (service_name != NULL);
+
+ _dbus_string_init_const (&service_string, service_name);
+
+ context = bus_transaction_get_context (transaction);
+
+ service = bus_registry_lookup (bus_context_get_registry (context),
+ &service_string);
+
+ if (service == NULL)
+ {
+ /* destination isn't connected yet; pass the message to activation */
+ BusActivation *activation;
+
+ activation = bus_context_get_activation (context);
+
++ if (!bus_transaction_capture (transaction, NULL, NULL, message))
+ {
+ BUS_SET_OOM (error);
+ _dbus_verbose ("No memory for bus_transaction_capture()");
+ return FALSE;
+ }
+
+ if (!bus_activation_activate_service (activation, NULL, transaction, TRUE,
+ message, service_name, error))
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ _dbus_verbose ("bus_activation_activate_service() failed");
+ return FALSE;
+ }
+ }
+ else
+ {
+ DBusConnection *service_conn;
+
+ service_conn = bus_service_get_primary_owners_connection (service);
+
+ if (!bus_transaction_send_from_driver (transaction, service_conn, message))
+ {
+ BUS_SET_OOM (error);
+ _dbus_verbose ("No memory for bus_transaction_send_from_driver()");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+ }
+
static dbus_bool_t
bus_driver_handle_update_activation_environment (DBusConnection *connection,
BusTransaction *transaction,
DBusConnection *conn;
DBusMessage *reply;
void *data = NULL;
- dbus_uint32_t data_size;
+ dbus_int32_t data_size;
const char *service;
+ BusDriverFound found;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);