From: Willy Tarreau Date: Mon, 13 Jan 2014 10:34:42 +0000 (+0100) Subject: BUG: Revert "OPTIM: poll: restore polling after a poll/stop/want sequence" X-Git-Tag: v1.5-dev22~70 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8663105095b1f92d91450c33fc447bb679152489;p=thirdparty%2Fhaproxy.git BUG: Revert "OPTIM: poll: restore polling after a poll/stop/want sequence" This reverts commit 12082663561aa2189d243328060c399f2fd95860. It randomly breaks SSL. What happens is that if the SSL response is read at once by the SSL stack and is partially delivered to the buffer, then there's no way to read the next parts because we wait for some polling first. So we'll fix this after the polling rework. --- diff --git a/include/proto/fd.h b/include/proto/fd.h index 472665f104..7fe616e381 100644 --- a/include/proto/fd.h +++ b/include/proto/fd.h @@ -171,15 +171,7 @@ static inline void fd_ev_set(int fd, int dir) */ if (i & (FD_EV_ACTIVE << dir)) return; /* already in desired state */ - - /* If we're touching an FD which is still being polled, and was - * recently disabled, we re-enable polling in order not to perform - * a syscall dance and to avoid a missed speculative event. - */ - if ((((unsigned int)fdtab[fd].spec_e) >> 4) & (FD_EV_POLLED << dir)) - fdtab[fd].spec_e ^= i ^ (FD_EV_POLLED << dir); - else - fdtab[fd].spec_e |= (FD_EV_ACTIVE << dir); + fdtab[fd].spec_e |= (FD_EV_ACTIVE << dir); updt_fd(fd); /* need an update entry to change the state */ }