[maemo-commits] [maemo-commits] r18239 - projects/haf/trunk/dbus/debian/patches
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue May 5 16:10:06 EEST 2009
- Previous message: [maemo-commits] r18238 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18240 - projects/haf/trunk/dbus/debian/patches
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: makarhun
Date: 2009-05-05 16:10:01 +0300 (Tue, 05 May 2009)
New Revision: 18239
Added:
projects/haf/trunk/dbus/debian/patches/50-ignore-epipe-on-write.patch
Modified:
projects/haf/trunk/dbus/debian/patches/series
Log:
patch 50
Added: projects/haf/trunk/dbus/debian/patches/50-ignore-epipe-on-write.patch
===================================================================
--- projects/haf/trunk/dbus/debian/patches/50-ignore-epipe-on-write.patch 2009-05-05 12:25:08 UTC (rev 18238)
+++ projects/haf/trunk/dbus/debian/patches/50-ignore-epipe-on-write.patch 2009-05-05 13:10:01 UTC (rev 18239)
@@ -0,0 +1,124 @@
+diff --git a/debian/patches/36-bug-896-ignore-epipe-on-writes.patch b/debian/patches/36-bug-896-ignore-epipe-on-writes.patch
+new file mode 100644
+index 0000000..2ef8c2e
+--- /dev/null
++++ b/debian/patches/36-bug-896-ignore-epipe-on-writes.patch
+@@ -0,0 +1,118 @@
++diff --git a/dbus/dbus-sysdeps.c b/dbus/dbus-sysdeps.c
++index 00a1a3d..d317f31 100644
++--- a/dbus/dbus-sysdeps.c
+++++ b/dbus/dbus-sysdeps.c
++@@ -1078,6 +1078,16 @@ _dbus_get_is_errno_eintr (void)
++ }
++
++ /**
+++ * See if errno is EPIPE
+++ * @returns #TRUE if errno == EPIPE
+++ */
+++dbus_bool_t
+++_dbus_get_is_errno_epipe (void)
+++{
+++ return errno == EPIPE;
+++}
+++
+++/**
++ * Get error message from errno
++ * @returns _dbus_strerror(errno)
++ */
++diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
++index b766f3f..8e6cdc4 100644
++--- a/dbus/dbus-sysdeps.h
+++++ b/dbus/dbus-sysdeps.h
++@@ -362,6 +362,7 @@ dbus_bool_t _dbus_get_is_errno_nonzero (void);
++ dbus_bool_t _dbus_get_is_errno_eagain_or_ewouldblock (void);
++ dbus_bool_t _dbus_get_is_errno_enomem (void);
++ dbus_bool_t _dbus_get_is_errno_eintr (void);
+++dbus_bool_t _dbus_get_is_errno_epipe (void);
++ const char* _dbus_strerror_from_errno (void);
++
++ void _dbus_disable_sigpipe (void);
++diff --git a/dbus/dbus-transport-socket.c b/dbus/dbus-transport-socket.c
++index 10b671c..bf97ef8 100644
++--- a/dbus/dbus-transport-socket.c
+++++ b/dbus/dbus-transport-socket.c
++@@ -616,7 +616,11 @@ do_writing (DBusTransport *transport)
++ {
++ /* EINTR already handled for us */
++
++- if (_dbus_get_is_errno_eagain_or_ewouldblock ())
+++ /* For some discussion of why we also ignore EPIPE here, see
+++ * http://lists.freedesktop.org/archives/dbus/2008-March/009526.html
+++ */
+++
+++ if (_dbus_get_is_errno_eagain_or_ewouldblock () || _dbus_get_is_errno_epipe ())
++ goto out;
++ else
++ {
++@@ -807,6 +811,28 @@ do_reading (DBusTransport *transport)
++ }
++
++ static dbus_bool_t
+++unix_error_with_read_to_come (DBusTransport *itransport,
+++ DBusWatch *watch,
+++ unsigned int flags)
+++{
+++ DBusTransportSocket *transport = (DBusTransportSocket *) itransport;
+++ if (flags & DBUS_WATCH_ERROR)
+++ return TRUE;
+++
+++ if ((flags & DBUS_WATCH_HANGUP) && !(flags & DBUS_WATCH_READABLE))
+++ {
+++ /* If we have a read watch enabled ...
+++ we -might have data incoming ... => handle the HANGUP there */
+++ if (watch != transport->read_watch &&
+++ _dbus_watch_get_enabled (transport->read_watch))
+++ return FALSE;
+++
+++ return TRUE;
+++ }
+++ return FALSE;
+++}
+++
+++static dbus_bool_t
++ socket_handle_watch (DBusTransport *transport,
++ DBusWatch *watch,
++ unsigned int flags)
++@@ -823,8 +849,7 @@ socket_handle_watch (DBusTransport *transport,
++ * of its max_bytes_read_per_iteration limit). The condition where
++ * flags == HANGUP (without READABLE) probably never happen in fact.
++ */
++- if ((flags & DBUS_WATCH_ERROR) ||
++- ((flags & DBUS_WATCH_HANGUP) && !(flags & DBUS_WATCH_READABLE)))
+++ if (unix_error_with_read_to_come (transport, watch, flags))
++ {
++ _dbus_verbose ("Hang up or error on watch\n");
++ _dbus_transport_disconnect (transport);
++diff --git a/dbus/dbus-watch.c b/dbus/dbus-watch.c
++index 9d6ab7c..da7b1bf 100644
++--- a/dbus/dbus-watch.c
+++++ b/dbus/dbus-watch.c
++@@ -51,6 +51,12 @@ struct DBusWatch
++ unsigned int enabled : 1; /**< Whether it's enabled. */
++ };
++
+++dbus_bool_t
+++_dbus_watch_get_enabled (DBusWatch *watch)
+++{
+++ return watch->enabled;
+++}
+++
++ /**
++ * Creates a new DBusWatch. Used to add a file descriptor to be polled
++ * by a main loop.
++diff --git a/dbus/dbus-watch.h b/dbus/dbus-watch.h
++index 1d8d327..bb3fe98 100644
++--- a/dbus/dbus-watch.h
+++++ b/dbus/dbus-watch.h
++@@ -74,6 +74,7 @@ void _dbus_watch_list_remove_watch (DBusWatchList *watch_li
++ void _dbus_watch_list_toggle_watch (DBusWatchList *watch_list,
++ DBusWatch *watch,
++ dbus_bool_t enabled);
+++dbus_bool_t _dbus_watch_get_enabled (DBusWatch *watch);
++
++ /** @} */
++
Modified: projects/haf/trunk/dbus/debian/patches/series
===================================================================
--- projects/haf/trunk/dbus/debian/patches/series 2009-05-05 12:25:08 UTC (rev 18238)
+++ projects/haf/trunk/dbus/debian/patches/series 2009-05-05 13:10:01 UTC (rev 18239)
@@ -18,3 +18,4 @@
35-fixed-socket-dir.patch
40-prevent-autolaunch.patch
45-dbus-clock-monotonic-1.patch
+50-ignore-epipe-on-write.patch
- Previous message: [maemo-commits] r18238 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18240 - projects/haf/trunk/dbus/debian/patches
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
