summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2011-06-03 12:55:19 -0700
committerJeremy Allison <jra@samba.org>2011-06-04 00:27:37 +0200
commit3c9b3b2befc524f21c59f46ea9be1602b4b1bfe8 (patch)
tree2ccfc4065d85a0da58575b2bcef3bb3e11af9750
parentdbcdf3e39c359241b743a9455ae695e14a30caa9 (diff)
downloadsamba-3c9b3b2befc524f21c59f46ea9be1602b4b1bfe8.tar.gz
samba-3c9b3b2befc524f21c59f46ea9be1602b4b1bfe8.tar.bz2
samba-3c9b3b2befc524f21c59f46ea9be1602b4b1bfe8.zip
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 <jra@samba.org> Autobuild-Date: Sat Jun 4 00:27:37 CEST 2011 on sn-devel-104
-rw-r--r--source3/lib/events.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/source3/lib/events.c b/source3/lib/events.c
index 9ff14880ec..fbe3db942b 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) {