Hello community,

here is the log from the commit of package dbus-1 for openSUSE:13.1 checked in 
at 2013-09-26 19:32:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/dbus-1 (Old)
 and      /work/SRC/openSUSE:13.1/.dbus-1.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dbus-1"

Changes:
--------
--- /work/SRC/openSUSE:13.1/dbus-1/dbus-1-x11.changes   2013-09-23 
10:49:27.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.dbus-1.new/dbus-1-x11.changes      2013-09-26 
19:32:12.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Sep 25 17:34:53 CEST 2013 - [email protected]
+
+- Amend dbus-fall-back-to-old-run-directory.patch to prevent a
+  new class of hangs while upgrading D-Bus along with other
+  services (bnc#802525).
+
+-------------------------------------------------------------------
dbus-1.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
dbus-1.spec: same change
++++++ dbus-fall-back-to-old-run-directory.patch ++++++
--- /var/tmp/diff_new_pack.kfTFr7/_old  2013-09-26 19:32:12.000000000 +0200
+++ /var/tmp/diff_new_pack.kfTFr7/_new  2013-09-26 19:32:12.000000000 +0200
@@ -1,5 +1,5 @@
 diff --git a/dbus/dbus-bus.c b/dbus/dbus-bus.c
-index fadc3a8..2c71cdb 100644
+index 6f81c74..96416c6 100644
 --- a/dbus/dbus-bus.c
 +++ b/dbus/dbus-bus.c
 @@ -421,6 +421,153 @@ _dbus_bus_notify_shared_connection_disconnected_unlocked 
(DBusConnection *connec
@@ -181,7 +181,7 @@
      }
  
 diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
-index ee33b6c..b87c6f7 100644
+index 66315b3..467379a 100644
 --- a/dbus/dbus-connection.c
 +++ b/dbus/dbus-connection.c
 @@ -348,7 +348,7 @@ static void               
_dbus_connection_update_dispatch_status_and_unlock (DB
@@ -272,3 +272,75 @@
    
    HAVE_LOCK_CHECK (connection);
    /* Unlocks and calls out to user code */
+diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
+index e9bd9ef..0d04006 100644
+--- a/dbus/dbus-sysdeps-unix.c
++++ b/dbus/dbus-sysdeps-unix.c
+@@ -773,6 +773,51 @@ _dbus_write_two (int               fd,
+  * which is probably a good idea.
+  */
+ 
++static int
++connect_with_timeout (const char *path,
++                      int fd,
++                      const struct sockaddr *addr,
++                      socklen_t addrlen,
++                      DBusError *error)
++{
++  struct pollfd poll_fd;
++
++  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
++
++  if (!_dbus_set_fd_nonblocking (fd, error))
++    {
++      _dbus_close (fd, NULL);
++      return -1;
++    }
++
++  connect (fd, addr, addrlen);
++
++  poll_fd.fd = fd;
++  poll_fd.events = POLLOUT | POLLERR | POLLNVAL;
++
++  if (poll (&poll_fd, 1, 250) < 1)
++    {
++      dbus_set_error (error,
++                      _dbus_error_from_errno (errno),
++                      "Failed to connect to socket %s: %s",
++                      path, _dbus_strerror (errno));
++      _dbus_close (fd, NULL);
++      return -1;
++    }
++
++  if (!(poll_fd.revents & POLLOUT))
++    {
++      dbus_set_error (error,
++                      _dbus_error_from_errno (errno),
++                      "Failed to connect to socket %s: %s",
++                      path, _dbus_strerror (errno));
++      _dbus_close (fd, NULL);
++      return -1;
++    }
++
++  return 0;
++}
++
+ /**
+  * Creates a socket and connects it to the UNIX domain socket at the
+  * given path.  The connection fd is returned, and is set up as
+@@ -851,7 +896,14 @@ _dbus_connect_unix_socket (const char     *path,
+       strncpy (addr.sun_path, path, path_len);
+     }
+ 
+-  if (connect (fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct 
sockaddr_un, sun_path) + path_len) < 0)
++  if ((!strcmp (path, DBUS_SYSTEM_BUS_DEFAULT_ADDRESS) ||
++       (!strncmp (DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "unix:path=", strlen 
("unix:path=")) &&
++        !strcmp (path, DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + strlen 
("unix:path=")))) &&
++      connect_with_timeout (path, fd, (struct sockaddr*) &addr, 
_DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len, error) < 0)
++    {
++      return -1;
++    }
++  else if (connect (fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct 
sockaddr_un, sun_path) + path_len) < 0)
+     {
+       dbus_set_error (error,
+                       _dbus_error_from_errno (errno),

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to