Addition of server macros to determine server state

Addition of rule in readconnroute to take server state into account

Addition of "current connections" statistic in the server
This commit is contained in:
Mark Riddoch
2013-06-26 00:58:58 +02:00
parent 3338e9cdb0
commit c7a424cdab
5 changed files with 43 additions and 3 deletions

View File

@ -154,6 +154,8 @@ CLI_SESSION *client;
client->next = inst->sessions;
inst->sessions = client;
spinlock_release(&inst->lock);
session->state = SESSION_STATE_READY;
return (void *)client;
}

View File

@ -193,8 +193,11 @@ int i;
candidate = inst->servers[0];
for (i = 1; inst->servers[i]; i++)
{
if (inst->servers[i] && inst->servers[i]->count < candidate->count)
if (inst->servers[i] && SERVER_IS_RUNNING(inst->servers[i]->server)
&& inst->servers[i]->count < candidate->count)
{
candidate = inst->servers[i];
}
}
/*
@ -243,8 +246,9 @@ CLIENT_SESSION *session = (CLIENT_SESSION *)router_session;
* Close the connection to the backend
*/
session->dcb->func.close(session->dcb);
atomic_add(&session->backend->count, -1);
atomic_add(&session->backend->server->stats.n_current, -1);
spinlock_acquire(&inst->lock);
if (inst->connections == session)
inst->connections = session->next;