Improved modutil_get_complete_packets to only allocate a single buffer.
This commit is contained in:
@ -493,6 +493,31 @@ static int gw_read_backend_event(DCB *dcb) {
|
||||
ss_dassert(read_buffer != NULL || dcb->dcb_readqueue != NULL);
|
||||
}
|
||||
|
||||
read_buffer = gwbuf_append(read_buffer,dcb->dcb_readqueue);
|
||||
nbytes_read = gwbuf_length(read_buffer);
|
||||
|
||||
if (nbytes_read < 3)
|
||||
{
|
||||
dcb->dcb_readqueue = gwbuf_append(dcb->dcb_readqueue, read_buffer);
|
||||
rc = 0;
|
||||
goto return_rc;
|
||||
}
|
||||
|
||||
{
|
||||
GWBUF *tmp = modutil_get_complete_packets(&read_buffer);
|
||||
|
||||
if(tmp == NULL)
|
||||
{
|
||||
dcb->dcb_readqueue = gwbuf_append(dcb->dcb_readqueue, read_buffer);
|
||||
rc = 0;
|
||||
goto return_rc;
|
||||
|
||||
}
|
||||
|
||||
dcb->dcb_readqueue = read_buffer;
|
||||
read_buffer = tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* If protocol has session command set, concatenate whole
|
||||
* response into one buffer.
|
||||
|
Reference in New Issue
Block a user