Provide function to remove a header from a message.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Sat, 2 Nov 2013 21:03:01 +0000 (19:03 -0200)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Sat, 2 Nov 2013 21:03:01 +0000 (19:03 -0200)
Remove the first n bytes from a message.

rnet_message.c
rnet_message.h

index 52edf14..f47d78c 100644 (file)
@@ -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)
 {
index 7e82e80..35fe9ed 100644 (file)
@@ -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);