diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2010-06-14 03:53:57 +0300 |
---|---|---|
committer | Felipe Contreras <felipe.contreras@gmail.com> | 2010-06-14 03:57:54 +0300 |
commit | 3c9e3d652305deb4e01bdde2f2c1b92a6a0c037e (patch) | |
tree | 4a8a7198ddfca21e3035687208fb019187cbe1e2 | |
parent | e67966bd54b650f88e26b795fd5e0d513bd50d95 (diff) |
cmd_node: cleanup buffer after parsing
Also, increse the size if needed.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r-- | pn_cmd_node.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pn_cmd_node.c b/pn_cmd_node.c index 991d6c8..dcf3613 100644 --- a/pn_cmd_node.c +++ b/pn_cmd_node.c @@ -2,6 +2,7 @@ #include "pn_trans.h" #include "pn_parser.h" #include "pn_cmd.h" +#include "pn_buffer.h" #include <string.h> @@ -121,6 +122,12 @@ parse_impl(struct pn_node *node, if (cmd) got_command(PN_CMD_NODE(node), cmd, length); } while (more); + + if (buffer->offset) { + size_t cur_len = buffer->len - buffer->offset; + pn_buffer_prepare(buffer, cur_len); + memmove(buffer->data, buffer->data + buffer->offset, cur_len); + } } /* GObject stuff */ |