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
@@ -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') {
|
||||
|
||||
Reference in new issue
Block a user