diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-27 17:42:51 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-27 17:42:51 +0530 |
| commit | 58b2c8b6e2041e63c46b579eccc141d21801e985 (patch) | |
| tree | 8faa61241e702e3c368e9ddf3f41f3a96f80df5d | |
| parent | 49cc88def2f9edea59e79ca37f41400ad870579e (diff) | |
main.c message reached JS
| -rw-r--r-- | src/ipc.c | 28 | ||||
| -rw-r--r-- | src/ipc.h | 8 | ||||
| -rw-r--r-- | src/main.c | 20 | ||||
| -rw-r--r-- | src/server.c | 10 | ||||
| -rw-r--r-- | src/server/comms.c | 14 |
5 files changed, 58 insertions, 22 deletions
diff --git a/src/ipc.c b/src/ipc.c new file mode 100644 index 0000000..efdb8ce --- /dev/null +++ b/src/ipc.c @@ -0,0 +1,28 @@ +#ifndef IPC_C +#define IPC_C + +#include <mqueue.h> +#include <stdlib.h> + +struct mq_attr attr = { + .mq_flags = 0, + .mq_maxmsg = 10, + .mq_msgsize = 1024, + .mq_curmsgs = 0, +}; + +char* read_queue(mqd_t target) { + char* buf = malloc(attr.mq_msgsize); + int n = mq_receive(target, buf, attr.mq_msgsize, NULL); + if (n == -1) { + free(buf); + return NULL; + } + return buf; +} + +void send_queue(mqd_t target, const char* msg) { + mq_send(target, msg, sizeof(msg), 0); +} + +#endif // IPC_C diff --git a/src/ipc.h b/src/ipc.h deleted file mode 100644 index 3a49f52..0000000 --- a/src/ipc.h +++ /dev/null @@ -1,8 +0,0 @@ -#include <mqueue.h> - -struct mq_attr attr = { - .mq_flags = 0, - .mq_maxmsg = 10, - .mq_msgsize = 1024, - .mq_curmsgs = 0, -}; @@ -13,13 +13,27 @@ int main(int argc, char** argv) { return 0; } -#include "ipc.h" +#include "ipc.c" void comms_main() { mqd_t tx = mq_open("/engine_to_server", O_WRONLY); mqd_t rx = mq_open("/server_to_engine", O_RDONLY); - char msg[] = "hello"; - mq_send(tx, msg, sizeof(msg), 0); + send_queue(tx, "hello"); + send_queue(tx, "hello2"); + // send_queue(tx, "hello"); + + // moves_t moves = moves_init(); + // position_t position = position_starting(); + // // get_queen_moves(&moves, position); + // + // bitboard_t b = 0; + // + // for (int i = 0; i < moves.length; i++) { + // b |= (bitboard_t)1 << moves.moves[i].to; + // printf("%d %d | ", (moves.moves[i].from), (moves.moves[i].to)); + // } + // + // print_bitboard(b); } int direct_run() { diff --git a/src/server.c b/src/server.c index 83f9349..d13945f 100644 --- a/src/server.c +++ b/src/server.c @@ -14,7 +14,7 @@ #include "server/base64.c" #include "server/ws_key.c" #include "server/comms.c" -#include "ipc.h" +#include "ipc.c" int main(int argc, char** argv) { assert(argc == 2); @@ -28,12 +28,6 @@ int main(int argc, char** argv) { return 0; } - char* buf = malloc(attr.mq_msgsize); - int n = mq_receive(rx, buf, attr.mq_msgsize, NULL); - printf("%s", buf); - return 0; - - int server_fd = socket(AF_INET, SOCK_STREAM, 0); int opt = 1; @@ -110,7 +104,7 @@ int main(int argc, char** argv) { payload[i] ^= mask[i % 4]; char* payload_ptr = payload; - struct strs response = handle_input(payload_ptr, len); + struct strs response = handle_input(tx, rx, payload_ptr, len); unsigned char out[128]; out[0] = 0x81; diff --git a/src/server/comms.c b/src/server/comms.c index 7b8001b..c96afa8 100644 --- a/src/server/comms.c +++ b/src/server/comms.c @@ -1,4 +1,5 @@ #include <assert.h> +#include "../ipc.c" struct str { char msg[126]; @@ -41,12 +42,19 @@ void add_str(struct strs* strs, char* str) { strs->count++; } -struct strs handle_input(char* payload, int len) { +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(); - add_str(&output, "nigga"); - add_str(&output, "nigga2"); + char* buf = read_queue(rx); + printf("%p\n", buf); + add_str(&output, buf); + if (buf) free(buf); + + buf = read_queue(rx); + printf("%p\n", buf); + add_str(&output, buf); + if (buf) free(buf); return output; } |
