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.
{
struct client *cl = co->client;
{
struct client *cl = co->client;
- yaz_log(YLOG_DEBUG, "Connection release %s", co->host->hostport);
if (!cl)
return;
client_set_connection(cl, 0);
if (!cl)
return;
client_set_connection(cl, 0);
yaz_mutex_enter(host->mutex);
for (co = host->connections; co; co = co->next)
if (connection_is_idle(co) &&
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)))
!strcmp(ZOOM_connection_option_get(co->link, "user"),
session_setting_oneval(client_get_database(cl),
PZ_AUTHENTICATION)))