From 5f124a78b9b2f7e98cad8d851bb5835001b86846 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 2 Nov 2013 19:03:01 -0200 Subject: [PATCH] Provide function to remove a header from a message. Remove the first n bytes from a message. --- rnet_message.c | 9 +++++++++ rnet_message.h | 1 + 2 files changed, 10 insertions(+) diff --git a/rnet_message.c b/rnet_message.c index 52edf14..f47d78c 100644 --- a/rnet_message.c +++ b/rnet_message.c @@ -58,6 +58,15 @@ void rnet_message_del(struct rnet_message *message) free(message); } +int rnet_message_strip(struct rnet_message *message, size_t len) +{ + if (len > message->len) + return -1; + message->len -= len; + memmove(message->buffer, message->buffer + len, message->len); + return 0; +} + static int add_field(struct rnet_message **message, char *key, int klen, char *val, int vlen) { diff --git a/rnet_message.h b/rnet_message.h index 7e82e80..35fe9ed 100644 --- a/rnet_message.h +++ b/rnet_message.h @@ -31,6 +31,7 @@ struct rnet_message { struct rnet_message * rnet_message_new(void); void rnet_message_del(struct rnet_message *message); int rnet_message_expand(struct rnet_message **message, size_t len); +int rnet_message_strip(struct rnet_message *message, size_t len); int rnet_message_add_u32(struct rnet_message **msg, char *key, uint32_t val); int rnet_message_add_ascii(struct rnet_message **msg, char *key, char *val); -- 2.20.1