diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-06-01 15:31:59 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-06-01 15:31:59 +0530 |
| commit | 11c7f0834f8c504782642800d1b676256ab12693 (patch) | |
| tree | c160536474095a9981c07b5a7a02a13395740b0d /src | |
| parent | d2af19a9ee217f55de12a303d9d6283c76fe446b (diff) | |
reconnect button
Diffstat (limited to 'src')
| -rw-r--r-- | src/server.c | 25 | ||||
| -rw-r--r-- | src/server/base64.c | 5 |
2 files changed, 28 insertions, 2 deletions
diff --git a/src/server.c b/src/server.c index 80ba5ce..7ff9c87 100644 --- a/src/server.c +++ b/src/server.c @@ -10,6 +10,7 @@ #define PORT 3456 +#include "server/base64.c" #include "server/ws_key.c" #include "server/comms.c" @@ -133,10 +134,30 @@ int handle_client(int client) { } unsigned char mask[4]; - recv(client, mask, 4, MSG_WAITALL); + recvn = recv(client, mask, 4, MSG_WAITALL); + if (recvn == -1) { + char buf[256]; + if (strerror_r(errno, buf, sizeof(buf)) == 0) { + log_warnf("mask recv err: %s", buf); + } + } else { + char mask_hex[256] = {0}; + base64_encode(mask, 126, mask_hex); + log_infof("mask recv{%d}: %s", recvn, mask_hex); + } unsigned char payload[126]; - recv(client, payload, len, MSG_WAITALL); + recvn = recv(client, payload, len, MSG_WAITALL); + if (recvn == -1) { + char buf[256]; + if (strerror_r(errno, buf, sizeof(buf)) == 0) { + log_warnf("payload recv err: %s", buf); + } + } else { + char payload_hex[256] = {0}; + base64_encode(payload, 126, payload_hex); + log_infof("payload recv{%d}: %s", recvn, payload_hex); + } for (unsigned i = 0; i < len; i++) payload[i] ^= mask[i % 4]; diff --git a/src/server/base64.c b/src/server/base64.c index 7e52eb9..e3e0ef6 100644 --- a/src/server/base64.c +++ b/src/server/base64.c @@ -1,3 +1,6 @@ +#ifndef BASE64_C +#define BASE64_C + #include <stddef.h> static const char b64[] = @@ -27,3 +30,5 @@ void base64_encode( out[j] = 0; } + +#endif // BASE64_C |
