From bdb20e8de1627f0bf86df7382b1e7cd4f39937fb Mon Sep 17 00:00:00 2001 From: Lennart Buhl Date: Sat, 2 Nov 2013 15:08:19 +0100 Subject: [PATCH] serialize_string --- msg.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/msg.c b/msg.c index b155194..f7f433a 100644 --- a/msg.c +++ b/msg.c @@ -1,5 +1,6 @@ #include #include +#include #include #include "msg.h" @@ -31,25 +32,35 @@ struct Buffer *new_buffer() { return b; } -void append_space(Buffer * b, int bytes) { - b->size += bytes; +void append_space(Buffer * b, int n) { + b->size += n; b->data = realloc(b->data, b->size); } void serialize_int(int x, Buffer * b) { - // htonl :: uint32_t -> uint32_t + // htonl :: uint32_t -> uint32_t -- converts the parameter from host byte order to network byte order x = htonl(x); append_space(b, sizeof(int)); - memcpy(((char *)b->data) + b->next, &x, sizeof(int)); - b->next += sizeof(int); + memcpy( ((char*)b->data) + b->size, &x, sizeof(int)); + b->size += sizeof(int); +} + +void serialize_string(char *str, Buffer *b) { + + int newlen = strlen(str); + + append_space(b, newlen); + + for (int i=0; i < newlen; ++i) { + memcpy( ((char*)b->data) + b->size + i, str[i], sizeof(char)); + } + + b->size += newlen; } -void struct - -//serialize_string //serialize_message