From c12b5e663d91b367f59c9b895d54645c5305e959 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 4 Aug 2015 19:45:36 +0200 Subject: [PATCH] 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. --- src/backend.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend.c b/src/backend.c index d55434da7..a1c700765 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;