Merge branch 'dbus-1.10'
authorSimon McVittie <smcv@debian.org>
Mon, 23 Nov 2015 21:30:21 +0000 (21:30 +0000)
committerSimon McVittie <smcv@debian.org>
Mon, 23 Nov 2015 21:30:21 +0000 (21:30 +0000)
1  2 
NEWS
bus/driver.c
configure.ac
dbus/dbus-sysdeps-win.c
dbus/dbus-sysdeps.h

diff --cc NEWS
--- 1/NEWS
--- 2/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 <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)
  
diff --cc bus/driver.c
@@@ -978,6 -992,72 +992,72 @@@ send_ack_reply (DBusConnection *connect
    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,
@@@ -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);
  
diff --cc configure.ac
Simple merge
Simple merge
Simple merge