Skip to content
Snippets Groups Projects
Commit ed71e94d authored by Cedric Roux's avatar Cedric Roux
Browse files

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

skip unknown messages safely)
parent 06cd5665
No related branches found
No related tags found
No related merge requests found
......@@ -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: {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment