Removed walking of packets from mysql_backend and moved storing of partial packets to session command handling section.
This commit is contained in:
parent
b416455f4f
commit
9e1dc40bb5
@ -492,35 +492,19 @@ static int gw_read_backend_event(DCB *dcb) {
|
||||
{
|
||||
ss_dassert(read_buffer != NULL || dcb->dcb_readqueue != NULL);
|
||||
}
|
||||
|
||||
if(dcb->dcb_readqueue)
|
||||
{
|
||||
read_buffer = gwbuf_append(dcb->dcb_readqueue,read_buffer);
|
||||
}
|
||||
|
||||
nbytes_read = gwbuf_length(read_buffer);
|
||||
|
||||
if (nbytes_read < 3)
|
||||
{
|
||||
dcb->dcb_readqueue = read_buffer;
|
||||
rc = 0;
|
||||
goto return_rc;
|
||||
}
|
||||
|
||||
if (dcb->dcb_readqueue)
|
||||
{
|
||||
GWBUF *tmp = modutil_get_complete_packets(&read_buffer);
|
||||
|
||||
if(tmp == NULL)
|
||||
if (read_buffer != NULL)
|
||||
{
|
||||
/** No complete packets */
|
||||
dcb->dcb_readqueue = read_buffer;
|
||||
rc = 0;
|
||||
goto return_rc;
|
||||
|
||||
read_buffer = gwbuf_append(dcb->dcb_readqueue, read_buffer);
|
||||
}
|
||||
|
||||
dcb->dcb_readqueue = read_buffer;
|
||||
read_buffer = tmp;
|
||||
else
|
||||
{
|
||||
read_buffer = dcb->dcb_readqueue;
|
||||
}
|
||||
|
||||
nbytes_read = gwbuf_length(read_buffer);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -530,6 +514,13 @@ static int gw_read_backend_event(DCB *dcb) {
|
||||
if (protocol_get_srv_command((MySQLProtocol *)dcb->protocol, false) !=
|
||||
MYSQL_COM_UNDEFINED)
|
||||
{
|
||||
if(nbytes_read < 5)
|
||||
{
|
||||
dcb->dcb_readqueue = gwbuf_append(dcb->dcb_readqueue, read_buffer);
|
||||
rc = 0;
|
||||
goto return_rc;
|
||||
}
|
||||
|
||||
read_buffer = process_response_data(dcb, read_buffer, nbytes_read);
|
||||
/**
|
||||
* Received incomplete response to session command.
|
||||
|
Loading…
x
Reference in New Issue
Block a user