From: Thadeu Lima de Souza Cascardo Date: Sat, 2 Nov 2013 21:03:01 +0000 (-0200) Subject: Provide function to remove a header from a message. X-Git-Tag: v0.1.1~4 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Flibreceita.git;a=commitdiff_plain;h=5f124a78b9b2f7e98cad8d851bb5835001b86846 Provide function to remove a header from a message. Remove the first n bytes from a message. --- 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);