Fixes.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user