diff options
Diffstat (limited to '')
-rw-r--r-- | src/mds-server/multicast.c | 154 |
1 files changed, 75 insertions, 79 deletions
diff --git a/src/mds-server/multicast.c b/src/mds-server/multicast.c index d30530f..a71ddf4 100644 --- a/src/mds-server/multicast.c +++ b/src/mds-server/multicast.c @@ -30,15 +30,16 @@ * * @param this The message multicast state */ -void multicast_initialise(multicast_t* restrict this) +void +multicast_initialise(multicast_t *restrict this) { - this->interceptions = NULL; - this->interceptions_count = 0; - this->interceptions_ptr = 0; - this->message = NULL; - this->message_length = 0; - this->message_ptr = 0; - this->message_prefix = 0; + this->interceptions = NULL; + this->interceptions_count = 0; + this->interceptions_ptr = 0; + this->message = NULL; + this->message_length = 0; + this->message_ptr = 0; + this->message_prefix = 0; } @@ -47,10 +48,11 @@ void multicast_initialise(multicast_t* restrict this) * * @param this The message multicast state */ -void multicast_destroy(multicast_t* restrict this) +void +multicast_destroy(multicast_t *restrict this) { - free(this->interceptions); - free(this->message); + free(this->interceptions); + free(this->message); } @@ -60,13 +62,13 @@ void multicast_destroy(multicast_t* restrict this) * @param this The client information * @return The number of bytes to allocate to the output buffer */ -size_t multicast_marshal_size(const multicast_t* restrict this) +size_t +multicast_marshal_size(const multicast_t *restrict this) { - size_t rc = sizeof(int) + 5 * sizeof(size_t) + this->message_length * sizeof(char); - size_t i; - for (i = 0; i < this->interceptions_count; i++) - rc += queued_interception_marshal_size(); - return rc; + size_t i, rc = sizeof(int) + 5 * sizeof(size_t) + this->message_length * sizeof(char); + for (i = 0; i < this->interceptions_count; i++) + rc += queued_interception_marshal_size(); + return rc; } @@ -77,28 +79,26 @@ size_t multicast_marshal_size(const multicast_t* restrict this) * @param data Output buffer for the marshalled data * @return The number of bytes that have been written (everything will be written) */ -size_t multicast_marshal(const multicast_t* restrict this, char* restrict data) +size_t +multicast_marshal(const multicast_t *restrict this, char *restrict data) { - size_t rc = sizeof(int) + 5 * sizeof(size_t); - size_t i, n; - buf_set_next(data, int, MULTICAST_T_VERSION); - buf_set_next(data, size_t, this->interceptions_count); - buf_set_next(data, size_t, this->interceptions_ptr); - buf_set_next(data, size_t, this->message_length); - buf_set_next(data, size_t, this->message_ptr); - buf_set_next(data, size_t, this->message_prefix); - for (i = 0; i < this->interceptions_count; i++) - { - n = queued_interception_marshal(this->interceptions + i, data); - data += n / sizeof(char); - rc += n; - } - if (this->message_length > 0) - { - memcpy(data, this->message, this->message_length * sizeof(char)); - rc += this->message_length * sizeof(char); - } - return rc; + size_t i, n, rc = sizeof(int) + 5 * sizeof(size_t); + buf_set_next(data, int, MULTICAST_T_VERSION); + buf_set_next(data, size_t, this->interceptions_count); + buf_set_next(data, size_t, this->interceptions_ptr); + buf_set_next(data, size_t, this->message_length); + buf_set_next(data, size_t, this->message_ptr); + buf_set_next(data, size_t, this->message_prefix); + for (i = 0; i < this->interceptions_count; i++) { + n = queued_interception_marshal(this->interceptions + i, data); + data += n / sizeof(char); + rc += n; + } + if (this->message_length > 0) { + memcpy(data, this->message, this->message_length * sizeof(char)); + rc += this->message_length * sizeof(char); + } + return rc; } @@ -110,35 +110,33 @@ size_t multicast_marshal(const multicast_t* restrict this, char* restrict data) * @return Zero on error, `errno` will be set accordingly, otherwise the * number of read bytes. Destroy the client information on error. */ -size_t multicast_unmarshal(multicast_t* restrict this, char* restrict data) +size_t +multicast_unmarshal(multicast_t *restrict this, char *restrict data) { - size_t rc = sizeof(int) + 5 * sizeof(size_t); - size_t i, n; - this->interceptions = NULL; - this->message = NULL; - /* buf_get_next(data, int, MULTICAST_T_VERSION); */ - buf_next(data, int, 1); - buf_get_next(data, size_t, this->interceptions_count); - buf_get_next(data, size_t, this->interceptions_ptr); - buf_get_next(data, size_t, this->message_length); - buf_get_next(data, size_t, this->message_ptr); - buf_get_next(data, size_t, this->message_prefix); - if (this->interceptions_count > 0) - fail_if (xmalloc(this->interceptions, this->interceptions_count, queued_interception_t)); - for (i = 0; i < this->interceptions_count; i++) - { - n = queued_interception_unmarshal(this->interceptions + i, data); - data += n / sizeof(char); - rc += n; - } - if (this->message_length > 0) - { - fail_if (xmemdup(this->message, data, this->message_length, char)); - rc += this->message_length * sizeof(char); - } - return rc; - fail: - return 0; + size_t i, n, rc = sizeof(int) + 5 * sizeof(size_t); + this->interceptions = NULL; + this->message = NULL; + /* buf_get_next(data, int, MULTICAST_T_VERSION); */ + buf_next(data, int, 1); + buf_get_next(data, size_t, this->interceptions_count); + buf_get_next(data, size_t, this->interceptions_ptr); + buf_get_next(data, size_t, this->message_length); + buf_get_next(data, size_t, this->message_ptr); + buf_get_next(data, size_t, this->message_prefix); + if (this->interceptions_count > 0) + fail_if (xmalloc(this->interceptions, this->interceptions_count, queued_interception_t)); + for (i = 0; i < this->interceptions_count; i++) { + n = queued_interception_unmarshal(this->interceptions + i, data); + data += n / sizeof(char); + rc += n; + } + if (this->message_length > 0) { + fail_if (xmemdup(this->message, data, this->message_length, char)); + rc += this->message_length * sizeof(char); + } + return rc; +fail: + return 0; } @@ -148,18 +146,16 @@ size_t multicast_unmarshal(multicast_t* restrict this, char* restrict data) * @param data In buffer with the marshalled data * @return The number of read bytes */ -size_t multicast_unmarshal_skip(char* restrict data) +size_t +multicast_unmarshal_skip(char *restrict data) { - size_t interceptions_count = buf_cast(data, size_t, 0); - size_t message_length = buf_cast(data, size_t, 2); - size_t rc = sizeof(int) + 5 * sizeof(size_t) + message_length * sizeof(char); - size_t n; - while (interceptions_count--) - { - n = queued_interception_unmarshal_skip(); - data += n / sizeof(char); - rc += n; - } - return rc; + size_t interceptions_count = buf_cast(data, size_t, 0); + size_t message_length = buf_cast(data, size_t, 2); + size_t n, rc = sizeof(int) + 5 * sizeof(size_t) + message_length * sizeof(char); + while (interceptions_count--) { + n = queued_interception_unmarshal_skip(); + data += n / sizeof(char); + rc += n; + } + return rc; } - |