[PATCH] tevent: Only call handlers that ask for events
Volker Lendecke
vl at samba.org
Wed Oct 6 10:47:08 MDT 2010
The s3 libsmbclient puts two different handlers on a single fd for readability
and writability. With select this works fine, however without this patch we
uncontionally call the write handler even if the socket is only readable. We
should have called the read handler instead.
---
lib/tevent/tevent_standard.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/tevent/tevent_standard.c b/lib/tevent/tevent_standard.c
index 1c8ed0e..a68a03c 100644
--- a/lib/tevent/tevent_standard.c
+++ b/lib/tevent/tevent_standard.c
@@ -505,7 +505,7 @@ static int std_event_loop_select(struct std_event_context *std_ev, struct timeva
if (FD_ISSET(fde->fd, &r_fds)) flags |= TEVENT_FD_READ;
if (FD_ISSET(fde->fd, &w_fds)) flags |= TEVENT_FD_WRITE;
- if (flags) {
+ if (flags & fde->flags) {
fde->handler(std_ev->ev, fde, flags, fde->private_data);
break;
}
--
1.7.0.4
--X1bOJ3K7DJ5YkBrT--
More information about the samba-technical
mailing list