From: Simon McVittie Date: Mon, 23 Nov 2015 21:30:21 +0000 (+0000) Subject: Merge branch 'dbus-1.10' X-Git-Tag: dbus-1.11.0~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66c15a41b644a468278fbdc624eaa52502d4f052;p=thirdparty%2Fdbus.git Merge branch 'dbus-1.10' --- 66c15a41b644a468278fbdc624eaa52502d4f052 diff --cc NEWS index d0a5c2c07,a0cdbdc17..5da00e42c --- a/NEWS +++ b/NEWS @@@ -1,25 -1,46 +1,63 @@@ -D-Bus 1.10.6 (UNRELEASED) +D-Bus 1.11.0 (UNRELEASED) == +Dependencies: + +• On non-Windows platforms, D-Bus requires an 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 or + , 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 or --syslog is used (fd.o #92538, Ralf Habacker) diff --cc bus/driver.c index 7b9205110,01fd340ff..684c3d8c7 --- a/bus/driver.c +++ b/bus/driver.c @@@ -978,6 -992,72 +992,72 @@@ send_ack_reply (DBusConnection *connect return TRUE; } + /* + * 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, message)) ++ 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, @@@ -1557,8 -1751,9 +1751,9 @@@ bus_driver_handle_get_adt_audit_session 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);