[dovecot-cvs] dovecot/src/lib ioloop-poll.c,1.18,1.19

cras at procontrol.fi cras at procontrol.fi
Mon May 26 17:07:14 EEST 2003


Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv19980

Modified Files:
	ioloop-poll.c 
Log Message:
bugfix



Index: ioloop-poll.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/ioloop-poll.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- ioloop-poll.c	24 May 2003 15:21:44 -0000	1.18
+++ ioloop-poll.c	26 May 2003 13:07:12 -0000	1.19
@@ -186,13 +186,11 @@
 
 		pollfd = &data->fds[data->fd_index[io->fd]];
 		if (pollfd->revents != 0) {
-			ret--;
-
 			if (pollfd->revents & POLLNVAL) {
 				i_error("invalid I/O fd %d, callback %p",
 					io->fd, (void *) io->callback);
 				pollfd->events &= ~POLLNVAL;
-				pollfd->revents &= ~POLLNVAL;
+				pollfd->revents = 0;
 				call = FALSE;
 			} else if ((io->condition &
 				    (IO_READ|IO_WRITE)) == (IO_READ|IO_WRITE)) {
@@ -207,6 +205,9 @@
 			} else {
 				call = FALSE;
 			}
+
+			if (pollfd->revents == 0)
+				ret--;
 
 			if (call) {
 				t_id = t_push();



More information about the dovecot-cvs mailing list