From: Adam Dickmeiss Date: Mon, 22 Feb 2010 13:51:28 +0000 (+0100) Subject: Fix connection reuse X-Git-Tag: v1.4.0~122 X-Git-Url: http://sru.miketaylor.org.uk/?a=commitdiff_plain;h=9b6c0ddfd2bf29a83a70ecd558cb2dcdb34a30d2;p=pazpar2-moved-to-github.git Fix connection reuse Try to ensure we don't use a connection (for reuse) that is still active. We must not reuse a connection (and ZOOM connection) if events are still being fired to it. --- diff --git a/src/connection.c b/src/connection.c index b8a7d01..f205252 100644 --- a/src/connection.c +++ b/src/connection.c @@ -264,7 +264,6 @@ void connection_release(struct connection *co) { struct client *cl = co->client; - yaz_log(YLOG_DEBUG, "Connection release %s", co->host->hostport); if (!cl) return; client_set_connection(cl, 0); @@ -444,7 +443,7 @@ int client_prep_connection(struct client *cl, yaz_mutex_enter(host->mutex); for (co = host->connections; co; co = co->next) if (connection_is_idle(co) && - (!co->client || client_get_session(co->client) != se) && + (!co->client || client_get_state(co->client) == Client_Idle) && !strcmp(ZOOM_connection_option_get(co->link, "user"), session_setting_oneval(client_get_database(cl), PZ_AUTHENTICATION)))