Improved modutil_get_complete_packets to only allocate a single buffer.

This commit is contained in:
Markus Makela
2015-03-22 07:44:14 +02:00
parent 92999a3174
commit 55513cc998
2 changed files with 64 additions and 3 deletions

View File

@ -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.