diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/comms.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/server/comms.c b/src/server/comms.c index c96afa8..4549bdd 100644 --- a/src/server/comms.c +++ b/src/server/comms.c @@ -43,18 +43,26 @@ void add_str(struct strs* strs, char* str) { } struct strs handle_input(mqd_t tx, mqd_t rx, char* payload, int len) { - printf("Message: %.*s\n", len, payload); - struct strs output = init_strs(); + printf("Message: %.*s", len, payload); + fflush(stdout); - char* buf = read_queue(rx); - printf("%p\n", buf); - add_str(&output, buf); - if (buf) free(buf); + struct strs output = init_strs(); - buf = read_queue(rx); - printf("%p\n", buf); - add_str(&output, buf); - if (buf) free(buf); + int n = get_num_messages(rx); + while (n > 0) { + char* buf = read_queue(rx); + add_str(&output, buf); + free(buf); + n--; + if (n == 0) n = get_num_messages(rx); + } + printf(" -> done\n"); + // if (buf) free(buf); + // + // buf = read_queue(rx); + // printf("%p\n", buf); + // add_str(&output, buf); + // if (buf) free(buf); return output; } |
