From: Willy Tarreau Date: Tue, 26 Aug 2008 11:25:39 +0000 (+0200) Subject: [BUG] fix harmless but wrong fd insertion sequence X-Git-Tag: v1.3.16-rc1~179 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=788e284d93ea7306fa8c4f8cc8721d3de648817b;p=thirdparty%2Fhaproxy.git [BUG] fix harmless but wrong fd insertion sequence In backend.c, we had an EV_FD_SET() called before fd_insert(). This is wrong because fd_insert updates maxfd which might be used by some of the pollers during EV_FD_SET(), although this is not currently the case. --- diff --git a/src/backend.c b/src/backend.c index f9b6dd1f32..2a39d77310 100644 --- a/src/backend.c +++ b/src/backend.c @@ -1815,9 +1815,9 @@ int connect_server(struct session *s) fdtab[fd].peeraddr = (struct sockaddr *)&s->srv_addr; fdtab[fd].peerlen = sizeof(s->srv_addr); - EV_FD_SET(fd, DIR_WR); /* for connect status */ - fd_insert(fd); + EV_FD_SET(fd, DIR_WR); /* for connect status */ + if (s->srv) { s->srv->cur_sess++; if (s->srv->cur_sess > s->srv->cur_sess_max)