[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 ]