Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing
This commit is contained in:
1 parent
018c8e795d
commit
3131dcbb7c
67 files changed
+3005
-1249
No files matched your search
@@ -225,17 +225,14 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) {
|
||||
}
|
||||
break;
|
||||
case GUI_EVT_INVITE_LINK_READY:
|
||||
if (dlen >= 3) {
|
||||
if (dlen >= 11) {
|
||||
uint8_t chLen = d[0];
|
||||
uint16_t linkLen = 0; memcpy(&linkLen, d + 1 + chLen, 2);
|
||||
if (dlen >= 1 + chLen + 2 + linkLen) {
|
||||
if (linkLen == 0) {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_CHAT_SYNC, "gui_bridge: INVITE_LINK_READY ch=%.*s — empty link (build failed)",
|
||||
chLen, (const char*)d + 1);
|
||||
if (g_invite_link_ready_cb) g_invite_link_ready_cb((const char*)d + 1, chLen, "");
|
||||
} else {
|
||||
if (g_invite_link_ready_cb) g_invite_link_ready_cb((const char*)d + 1, chLen, (const char*)(d + 1 + chLen + 2));
|
||||
}
|
||||
if (dlen < 1 + chLen + 10) break;
|
||||
uint64_t requestId; memcpy(&requestId, d + 1 + chLen, 8);
|
||||
uint16_t linkLen; memcpy(&linkLen, d + 1 + chLen + 8, 2);
|
||||
if (dlen >= 1 + chLen + 10 + linkLen) {
|
||||
QByteArray link((const char*)d + 1 + chLen + 10, linkLen);
|
||||
if (g_invite_link_ready_cb) g_invite_link_ready_cb((const char*)d + 1, chLen, requestId, link.constData());
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in new issue
Block a user