Make execute_session_command virtual
Making the function allows higher level checking to be done by the derived class. The readwritesplit does some of the reply bookkeeping for session commands in the function. This makes their execution less prone for errors as the states are always updated correctly whenever a session command is executed.
This commit is contained in:
@ -178,6 +178,18 @@ public:
|
||||
m_reply_state = state;
|
||||
}
|
||||
|
||||
bool execute_session_command()
|
||||
{
|
||||
bool rval = mxs::Backend::execute_session_command();
|
||||
|
||||
if (rval)
|
||||
{
|
||||
set_reply_state(REPLY_STATE_START);
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
private:
|
||||
reply_state_t m_reply_state;
|
||||
};
|
||||
|
@ -263,7 +263,6 @@ bool route_session_write(ROUTER_CLIENT_SES *rses, GWBUF *querybuf, uint8_t comma
|
||||
|
||||
if (expecting_response)
|
||||
{
|
||||
bref->set_reply_state(REPLY_STATE_START);
|
||||
rses->expected_responses++;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user