2003-06-20 Anders Carlsson <andersca@codefactory.se>
authorAnders Carlsson <andersca@codefactory.se>
Sat, 21 Jun 2003 07:51:39 +0000 (07:51 +0000)
committerAnders Carlsson <andersca@codefactory.se>
Sat, 21 Jun 2003 07:51:39 +0000 (07:51 +0000)
* dbus/dbus-transport-unix.c (unix_handle_watch): Check
for hangup and error after checking read so we won't discard
pending data if both hangup and read are set.

ChangeLog
dbus/dbus-transport-unix.c

index eb7cd6d..c9343bf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-06-20  Anders Carlsson  <andersca@codefactory.se>
+
+       * dbus/dbus-transport-unix.c (unix_handle_watch): Check 
+       for hangup and error after checking read so we won't discard
+       pending data if both hangup and read are set.
+
 2003-06-19  Philip Blundell  <philb@gnu.org>
 
        * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
index e5e446c..40c7a5d 100644 (file)
@@ -727,12 +727,6 @@ unix_handle_watch (DBusTransport *transport,
   _dbus_assert (watch == unix_transport->read_watch ||
                 watch == unix_transport->write_watch);
   
-  if (flags & (DBUS_WATCH_HANGUP | DBUS_WATCH_ERROR))
-    {
-      _dbus_transport_disconnect (transport);
-      return TRUE;
-    }
-  
   if (watch == unix_transport->read_watch &&
       (flags & DBUS_WATCH_READABLE))
     {
@@ -779,6 +773,12 @@ unix_handle_watch (DBusTransport *transport,
     }
 #endif /* DBUS_ENABLE_VERBOSE_MODE */
 
+  if (flags & (DBUS_WATCH_HANGUP | DBUS_WATCH_ERROR))
+    {
+      _dbus_transport_disconnect (transport);
+      return TRUE;
+    }
+  
   return TRUE;
 }