From: Willy Tarreau Date: Wed, 5 Aug 2015 08:31:57 +0000 (+0200) Subject: MINOR: server: add a list of already used idle connections X-Git-Tag: v1.6-dev4~113 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=173a1c6b439b5605b69eb099f8747097c305e0db;p=thirdparty%2Fhaproxy.git MINOR: server: add a list of already used idle connections There's a difference with the other idle conns in that these new ones have already been used and may be reused by other streams. --- diff --git a/include/types/server.h b/include/types/server.h index f72ca0c8dc..411ea4b423 100644 --- a/include/types/server.h +++ b/include/types/server.h @@ -167,6 +167,7 @@ struct server { struct list pendconns; /* pending connections */ struct list actconns; /* active connections */ struct list priv_conns; /* private idle connections attached to stream interfaces */ + struct list idle_conns; /* sharable idle connections attached or not to a stream interface */ struct task *warmup; /* the task dedicated to the warmup when slowstart is set */ struct conn_src conn_src; /* connection source settings */ diff --git a/src/hlua.c b/src/hlua.c index 08831ab57b..df3904f060 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -5061,6 +5061,7 @@ void hlua_init(void) LIST_INIT(&socket_tcp.actconns); LIST_INIT(&socket_tcp.pendconns); LIST_INIT(&socket_tcp.priv_conns); + LIST_INIT(&socket_tcp.idle_conns); socket_tcp.state = SRV_ST_RUNNING; /* early server setup */ socket_tcp.last_change = 0; socket_tcp.id = "LUA-TCP-CONN"; @@ -5105,6 +5106,7 @@ void hlua_init(void) LIST_INIT(&socket_ssl.actconns); LIST_INIT(&socket_ssl.pendconns); LIST_INIT(&socket_ssl.priv_conns); + LIST_INIT(&socket_ssl.idle_conns); socket_ssl.state = SRV_ST_RUNNING; /* early server setup */ socket_ssl.last_change = 0; socket_ssl.id = "LUA-SSL-CONN"; diff --git a/src/server.c b/src/server.c index 44f0dc385d..e33f68645b 100644 --- a/src/server.c +++ b/src/server.c @@ -887,6 +887,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr LIST_INIT(&newsrv->actconns); LIST_INIT(&newsrv->pendconns); LIST_INIT(&newsrv->priv_conns); + LIST_INIT(&newsrv->idle_conns); do_check = 0; do_agent = 0; newsrv->flags = 0;