Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing

This commit is contained in:
evgeny committed 2026-09-27 02:51:47 +03:00
1 parent 018c8e795d
commit 3131dcbb7c
67 files changed
+3005 -1249

No files matched your search

+6 -3
View File
@@ -79,9 +79,9 @@ ShareInviteDialog::ShareInviteDialog(const QString& channelId, DbManager* db, QW
this, &ShareInviteDialog::onNodeSelected);
/* колбэки результатов (по образцу JoinDialog) */
gui_bridge_set_invite_link_ready_cb([](const char* chId, int chIdLen, const char* link) {
gui_bridge_set_invite_link_ready_cb([](const char* chId, int chIdLen, uint64_t requestId, const char* link) {
ShareInviteDialog* dlg = qobject_cast<ShareInviteDialog*>(QApplication::activeModalWidget());
if (dlg) dlg->onLinkReady(chId, chIdLen, link);
if (dlg) dlg->onLinkReady(chId, chIdLen, requestId, link);
});
gui_bridge_set_invite_candidates_cb([](const char* chId, int chIdLen, const uint8_t* data, int len) {
ShareInviteDialog* dlg = qobject_cast<ShareInviteDialog*>(QApplication::activeModalWidget());
@@ -117,6 +117,8 @@ void ShareInviteDialog::requestLink(uint64_t targetNodeId) {
req->inst = gui_bridge_get_inst();
QByteArray chBytes = m_channelId.toUtf8();
strncpy(req->ch_id, chBytes.constData(), sizeof(req->ch_id) - 1);
static uint64_t nextRequestId = 0;
req->request_id = m_requestId = ++nextRequestId;
req->target_node_id = targetNodeId;
m_linkEdit->setText(QString());
m_linkEdit->setPlaceholderText(QString::fromUtf8("Генерация ссылки..."));
@@ -181,7 +183,8 @@ void ShareInviteDialog::onCandidates(const char* chId, int chIdLen, const uint8_
requestLink(autoId);
}
void ShareInviteDialog::onLinkReady(const char* chId, int chIdLen, const char* link) {
void ShareInviteDialog::onLinkReady(const char* chId, int chIdLen, uint64_t requestId, const char* link) {
if (requestId != m_requestId) return;
QString cid = QString::fromUtf8(chId, chIdLen);
if (cid != m_channelId) return;
if (!link || link[0] == '\0') {