The branch, master has been updated
       via  3c9b3b2 Add the same fix to the S3 event backend as the previous 
commit added to the tevent poll backend.
      from  dbcdf3e Fix the poll() backend to correctly respond to 
POLLHUP|POLLERR returns on a fd selected for TEVENT_FD_WRITE only.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 3c9b3b2befc524f21c59f46ea9be1602b4b1bfe8
Author: Jeremy Allison <j...@samba.org>
Date:   Fri Jun 3 12:55:19 2011 -0700

    Add the same fix to the S3 event backend as the previous commit added to 
the tevent poll backend.
    
    Metze please check !
    
    Autobuild-User: Jeremy Allison <j...@samba.org>
    Autobuild-Date: Sat Jun  4 00:27:37 CEST 2011 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source3/lib/events.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/events.c b/source3/lib/events.c
index 9ff1488..fbe3db9 100644
--- a/source3/lib/events.c
+++ b/source3/lib/events.c
@@ -258,7 +258,20 @@ bool run_events_poll(struct tevent_context *ev, int 
pollrtn,
                        return false;
                }
 
-               if (pfd->revents & (POLLIN|POLLHUP|POLLERR)) {
+               if (pfd->revents & (POLLHUP|POLLERR)) {
+                       /* If we only wait for EVENT_FD_WRITE, we
+                          should not tell the event handler about it,
+                          and remove the writable flag, as we only
+                          report errors when waiting for read events
+                          to match the select behavior. */
+                       if (!(fde->flags & EVENT_FD_READ)) {
+                               EVENT_FD_NOT_WRITEABLE(fde);
+                               continue;
+                       }
+                       flags |= EVENT_FD_READ;
+               }
+
+               if (pfd->revents & POLLIN) {
                        flags |= EVENT_FD_READ;
                }
                if (pfd->revents & POLLOUT) {


-- 
Samba Shared Repository

Reply via email to