From 75b75ced8afbe32c968d17c3c22c7d898e238974 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sat, 14 Feb 2026 22:46:58 -0500 Subject: [PATCH] Fixes. --- server/src/chat.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/server/src/chat.c b/server/src/chat.c index b78616b..b866527 100644 --- a/server/src/chat.c +++ b/server/src/chat.c @@ -122,6 +122,22 @@ int cb_chat( free(out); yyjson_mut_doc_free(wdoc); + + // #1a: Stream history messages to new client. + for (size_t i = 0; i < history_count; ++i) { + size_t idx = + (history_pos + HISTORY_SIZE - history_count + i) % + HISTORY_SIZE; + size_t hist_len = history_len[idx]; + size_t send_len = hist_len < SESSION_CHAT_BUF_SIZE + ? hist_len + : SESSION_CHAT_BUF_SIZE; + memcpy(&sess->buf[LWS_PRE], history[idx], send_len); + lws_write( + sess->wsi, &sess->buf[LWS_PRE], send_len, + LWS_WRITE_TEXT + ); + } } // #2: Introduce our new client to everybody else. @@ -275,21 +291,7 @@ int cb_chat( sess->wsi, &sess->buf[LWS_PRE], sess->buf_len, LWS_WRITE_TEXT ); - // #1b: Stream history messages to new client. - for (size_t i = 0; i < history_count; ++i) { - size_t idx = - (history_pos + HISTORY_SIZE - history_count + i) % - HISTORY_SIZE; - size_t hist_len = history_len[idx]; - size_t send_len = hist_len < SESSION_CHAT_BUF_SIZE - ? hist_len - : SESSION_CHAT_BUF_SIZE; - memcpy(&sess->buf[LWS_PRE], history[idx], send_len); - lws_write( - sess->wsi, &sess->buf[LWS_PRE], send_len, - LWS_WRITE_TEXT - ); - } + free(ack_out); yyjson_mut_doc_free(ackdoc); }