MXS-1267: Remove DCB cloning
The DCB cloning is no longer needed as the tee filter now does the session branching by simulating a local client connection.
This commit is contained in:
@ -178,7 +178,6 @@ MXS_SESSION* session_alloc_with_id(SERVICE *service, DCB *client_dcb, uint64_t i
|
||||
static MXS_SESSION* session_alloc_body(SERVICE* service, DCB* client_dcb,
|
||||
MXS_SESSION* session)
|
||||
{
|
||||
session->ses_is_child = (bool) DCB_IS_CLONE(client_dcb);
|
||||
session->service = service;
|
||||
session->client_dcb = client_dcb;
|
||||
session->stats.connect = time(0);
|
||||
@ -309,7 +308,6 @@ session_set_dummy(DCB *client_dcb)
|
||||
session = &session_dummy_struct;
|
||||
session->ses_chk_top = CHK_NUM_SESSION;
|
||||
session->ses_chk_tail = CHK_NUM_SESSION;
|
||||
session->ses_is_child = false;
|
||||
session->service = NULL;
|
||||
session->client_dcb = NULL;
|
||||
session->n_filters = 0;
|
||||
@ -359,7 +357,7 @@ static void
|
||||
session_simple_free(MXS_SESSION *session, DCB *dcb)
|
||||
{
|
||||
/* Does this possibly need a lock? */
|
||||
if (dcb->data && !DCB_IS_CLONE(dcb))
|
||||
if (dcb->data)
|
||||
{
|
||||
void * clientdata = dcb->data;
|
||||
dcb->data = NULL;
|
||||
@ -385,7 +383,7 @@ session_simple_free(MXS_SESSION *session, DCB *dcb)
|
||||
|
||||
void session_close(MXS_SESSION *session)
|
||||
{
|
||||
if (!session->ses_is_child && session->router_session)
|
||||
if (session->router_session)
|
||||
{
|
||||
if (session->state != SESSION_STATE_STOPPING)
|
||||
{
|
||||
@ -421,7 +419,7 @@ static void session_free(MXS_SESSION *session)
|
||||
* If session is not child of some other session, free router_session.
|
||||
* Otherwise let the parent free it.
|
||||
*/
|
||||
if (!session->ses_is_child && session->router_session)
|
||||
if (session->router_session)
|
||||
{
|
||||
session->service->router->freeSession(session->service->router_instance,
|
||||
session->router_session);
|
||||
@ -450,12 +448,8 @@ static void session_free(MXS_SESSION *session)
|
||||
|
||||
MXS_INFO("Stopped %s client session [%" PRIu64 "]", session->service->name, session->ses_id);
|
||||
|
||||
/** If session doesn't have parent referencing to it, it can be freed */
|
||||
if (!session->ses_is_child)
|
||||
{
|
||||
session->state = SESSION_STATE_FREE;
|
||||
session_final_free(session);
|
||||
}
|
||||
session->state = SESSION_STATE_FREE;
|
||||
session_final_free(session);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user