Fix problems in knowing user for persistent connections.

This commit is contained in:
counterpoint 2015-05-22 14:23:14 +01:00
parent 462bfe677b
commit b51c5f52ef
2 changed files with 8 additions and 1 deletions

View File

@ -1285,8 +1285,11 @@ dcb_close(DCB *dcb)
if (rc == 0)
{
if (NULL != dcb->server)
char *user;
user = session_getUser(dcb->session);
if (user && dcb->server)
{
dcb->user = strdup(user);
spinlock_acquire(&dcb->server->persistlock);
dcb->nextpersistent = dcb->server->persistent;
dcb->server->persistent = dcb;

View File

@ -165,6 +165,8 @@ server_get_persistent(SERVER *server, char *user)
}
else
{
free(dcb->user);
dcb->user = NULL;
spinlock_release(&server->persistlock);
atomic_add(&server->stats.n_persistent, -1);
return dcb;
@ -342,6 +344,8 @@ char *stat;
ptr->stats.n_current);
dcb_printf(dcb, "\tCurrent no. of operations: %d\n",
ptr->stats.n_current_ops);
dcb_printf(dcb, "\tPersistent pool size: %d\n",
ptr->stats.n_persistent);
ptr = ptr->next;
}
spinlock_release(&server_spin);