summaryrefslogtreecommitdiff
path: root/src/server/comms.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-05-28 00:09:50 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-05-28 00:09:50 +0530
commitc56cc12c154b3f21411d71e10f4e8a5a9682355b (patch)
tree9e07f9cf746ca12ca386c3ea1bebe4953453045a /src/server/comms.c
parent2c2a70b69869f149c0407a62f1bf4c39899027a7 (diff)
the moves now make it to the frontend
i know the issue which exists, where the server can't handle the request if i reload the page
Diffstat (limited to 'src/server/comms.c')
-rw-r--r--src/server/comms.c28
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;
}