From: Willy Tarreau Date: Tue, 4 Aug 2015 17:45:36 +0000 (+0200) Subject: MEDIUM: backend: don't call si_alloc_conn() when we reuse a valid connection X-Git-Tag: v1.6-dev4~120 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c12b5e663d91b367f59c9b895d54645c5305e959;p=thirdparty%2Fhaproxy.git MEDIUM: backend: don't call si_alloc_conn() when we reuse a valid connection connect_server() already does most of the check that is done again in si_alloc_conn(), so let's simply reuse the existing connection instead of calling the function again. It will also simplify the connection reuse. Indeed, for reuse to be set, it also requires srv_conn to be valid. In the end, the only situation where we have to release the existing connection and allocate a new one is when reuse == 0. --- diff --git a/src/backend.c b/src/backend.c index d55434da72..a1c700765d 100644 --- a/src/backend.c +++ b/src/backend.c @@ -1050,7 +1050,9 @@ int connect_server(struct stream *s) } } - srv_conn = si_alloc_conn(&s->si[1], reuse); + if (!reuse) + srv_conn = si_alloc_conn(&s->si[1], 0); + if (!srv_conn) return SF_ERR_RESOURCE;