This commit is contained in:
2026-02-14 22:46:58 -05:00
parent 9985473ceb
commit 75b75ced8a

View File

@@ -122,6 +122,22 @@ int cb_chat(
free(out); free(out);
yyjson_mut_doc_free(wdoc); 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. // #2: Introduce our new client to everybody else.
@@ -275,21 +291,7 @@ int cb_chat(
sess->wsi, &sess->buf[LWS_PRE], sess->buf_len, sess->wsi, &sess->buf[LWS_PRE], sess->buf_len,
LWS_WRITE_TEXT 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); free(ack_out);
yyjson_mut_doc_free(ackdoc); yyjson_mut_doc_free(ackdoc);
} }