Fix problems in knowing user for persistent connections.
This commit is contained in:
@ -1285,8 +1285,11 @@ dcb_close(DCB *dcb)
|
|||||||
|
|
||||||
if (rc == 0)
|
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);
|
spinlock_acquire(&dcb->server->persistlock);
|
||||||
dcb->nextpersistent = dcb->server->persistent;
|
dcb->nextpersistent = dcb->server->persistent;
|
||||||
dcb->server->persistent = dcb;
|
dcb->server->persistent = dcb;
|
||||||
|
|||||||
@ -165,6 +165,8 @@ server_get_persistent(SERVER *server, char *user)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
free(dcb->user);
|
||||||
|
dcb->user = NULL;
|
||||||
spinlock_release(&server->persistlock);
|
spinlock_release(&server->persistlock);
|
||||||
atomic_add(&server->stats.n_persistent, -1);
|
atomic_add(&server->stats.n_persistent, -1);
|
||||||
return dcb;
|
return dcb;
|
||||||
@ -342,6 +344,8 @@ char *stat;
|
|||||||
ptr->stats.n_current);
|
ptr->stats.n_current);
|
||||||
dcb_printf(dcb, "\tCurrent no. of operations: %d\n",
|
dcb_printf(dcb, "\tCurrent no. of operations: %d\n",
|
||||||
ptr->stats.n_current_ops);
|
ptr->stats.n_current_ops);
|
||||||
|
dcb_printf(dcb, "\tPersistent pool size: %d\n",
|
||||||
|
ptr->stats.n_persistent);
|
||||||
ptr = ptr->next;
|
ptr = ptr->next;
|
||||||
}
|
}
|
||||||
spinlock_release(&server_spin);
|
spinlock_release(&server_spin);
|
||||||
|
|||||||
Reference in New Issue
Block a user