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 | |
| parent | d2af19a9ee217f55de12a303d9d6283c76fe446b (diff) | |
reconnect button
| -rw-r--r-- | assets/board.js | 5 | ||||
| -rw-r--r-- | board.html | 13 | ||||
| -rw-r--r-- | src/server.c | 25 | ||||
| -rw-r--r-- | src/server/base64.c | 5 |
4 files changed, 45 insertions, 3 deletions
diff --git a/assets/board.js b/assets/board.js index c8e2194..9c7b29d 100644 --- a/assets/board.js +++ b/assets/board.js @@ -152,7 +152,7 @@ function checkMoveMade(pieceMoved) { socket.send(old_fen); } -window.onload = () => { +function connectSocket() { socket = new WebSocket("ws://localhost:3456"); let data = []; socket.onmessage = e => { @@ -171,7 +171,10 @@ window.onload = () => { socket.onerror = e => { console.log("error", e); }; +} +window.onload = () => { + connectSocket(); socket.onclose = e => { console.log("closed", e.code, e.reason); }; @@ -72,10 +72,23 @@ pointer-events: none; background-size: cover; } + button { + border: none; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 2rem; + cursor: pointer; + } + button:hover { + opacity: 0.9; + } </style> <script src="./assets/board.js"></script> </head> <body> + <button onclick="connectSocket()">Reconnect</button> <div id="board"> </div> <div id="output"> 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 |
