summaryrefslogtreecommitdiff
path: root/src/server.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-05-29 13:57:07 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-05-29 13:57:07 +0530
commit26df2f9a8cbe3a249d54baa090edaf6a13ec883d (patch)
tree736318d0b4f168660d8e7dab843c8002555db41f /src/server.c
parentc38475eb5d82f6e587faf2956a7eba3085890e99 (diff)
crazy working logging system, we are back to where we were yesterday, just with logs
Diffstat (limited to 'src/server.c')
-rw-r--r--src/server.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/server.c b/src/server.c
index 8b39d38..bf26970 100644
--- a/src/server.c
+++ b/src/server.c
@@ -31,9 +31,17 @@ int main(void) {
.sin_port = htons(PORT)
};
- bind(server_fd, (struct sockaddr *)&addr, sizeof(addr));
- listen(server_fd, 16);
- log_infof("Listening on %d\n", PORT);
+ if (bind(server_fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
+ perror("bind");
+ return 1;
+ }
+
+ if (listen(server_fd, 16) < 0) {
+ perror("listen");
+ return 1;
+ }
+
+ log_infof("Listening on %d", PORT);
for (;;) {
int client = accept(server_fd, NULL, NULL);
@@ -74,7 +82,7 @@ int main(void) {
);
send(client, response, strlen(response), 0);
- printf("WebSocket connected\n");
+ log_infof("WebSocket connected\n");
for (;;) {
unsigned char hdr[2];
@@ -106,14 +114,15 @@ int main(void) {
for (unsigned i = 0; i < len; i++)
payload[i] ^= mask[i % 4];
- char* payload_ptr = payload;
- struct strs response = handle_input(tx, rx, payload_ptr, len);
-
+ char* payload_ptr = (char*)payload;
+ struct strs response = handle_input(logging, tx, rx, payload_ptr, len);
+
unsigned char out[128];
out[0] = 0x81;
for (int i = 0; i < response.count; i++) {
struct str item = response.data[i];
out[1] = item.len;
+ assert(item.len <= 125);
memcpy(out + 2, item.msg, item.len);
send(client, out, item.len + 2, 0);