Commit ed71e94d authored by Cedric Roux's avatar Cedric Roux

add size of message when forwarding (so the remote end can

skip unknown messages safely)
parent 06cd5665
......@@ -150,15 +150,18 @@ again:
void forward(void *_forwarder, char *buf, int size)
{
forward_data *f = _forwarder;
int32_t ssize = size;
databuf *new;
new = malloc(sizeof(*new)); if (new == NULL) abort();
if (pthread_mutex_lock(&f->datalock)) abort();
new->d = malloc(size); if (new->d == NULL) abort();
memcpy(new->d, buf, size);
new->l = size;
new->d = malloc(size + 4); if (new->d == NULL) abort();
/* put the size of the message at the head */
memcpy(new->d, &ssize, 4);
memcpy(new->d+4, buf, size);
new->l = size+4;
new->next = NULL;
if (f->head == NULL) f->head = new;
if (f->tail != NULL) f->tail->next = new;
......
......@@ -91,7 +91,9 @@ void get_message(int s)
printf("["x"]["y"] %s", str); \
} while (0)
int32_t size;
int m;
if (GET(s, &size, 4) != 4) abort();
if (GET(s, &m, sizeof(int)) != sizeof(int)) abort();
switch (m) {
case T_first: {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment