add error logging to all silent returns in chat_sync invite/join chain + GUI self-invite check
This commit is contained in:
1 parent
21a0ee6caf
commit
f8d98cab47
2 files changed
+73
-30
No files matched your search
@@ -151,6 +151,39 @@ void InviteDialog::onSendInvite() {
|
||||
}
|
||||
|
||||
uint64_t targetNodeId = sc_derive_node_id_from_pubkey((const uint8_t*)d.pubkey.constData());
|
||||
|
||||
/* diagnostic: show decoded link info */
|
||||
{
|
||||
uint64_t myNodeId = m_node ? m_node->nodeIdHex().toULongLong(nullptr, 16) : 0;
|
||||
QString pkHex = QString::fromLatin1(d.pubkey.toHex());
|
||||
QString pkShort = pkHex.left(8) + ".." + pkHex.right(4);
|
||||
QString addrInfo;
|
||||
for (int i = 0; i < d.addrs.size() && i < 3; i++) {
|
||||
if (i > 0) addrInfo += ", ";
|
||||
uint32_t ip4 = 0;
|
||||
if (d.addrs[i].family == 4 && d.addrs[i].address.size() >= 4) {
|
||||
memcpy(&ip4, d.addrs[i].address.constData(), 4);
|
||||
addrInfo += QString("%1.%2.%3.%4:%5")
|
||||
.arg((ip4>>24)&0xFF).arg((ip4>>16)&0xFF).arg((ip4>>8)&0xFF).arg(ip4&0xFF)
|
||||
.arg(d.addrs[i].port);
|
||||
} else {
|
||||
addrInfo += QString("v%1:%2").arg(d.addrs[i].family).arg(d.addrs[i].port);
|
||||
}
|
||||
}
|
||||
if (d.addrs.size() > 3) addrInfo += QString(" +%1 more").arg(d.addrs.size() - 3);
|
||||
QString diag = QString("Ссылка: узел 0x%1 ключ %2, %3 адр. (%4)")
|
||||
.arg(targetNodeId, 16, 16, QChar('0'))
|
||||
.arg(pkShort)
|
||||
.arg(d.addrs.size())
|
||||
.arg(addrInfo);
|
||||
GUI_INFO("invite_by_link: %s", diag.toUtf8().constData());
|
||||
if (myNodeId != 0 && myNodeId == targetNodeId) {
|
||||
GUI_WARN("invite_by_link: self-invite rejected — link contains own pubkey, node=0x%016llx", (unsigned long long)myNodeId);
|
||||
setInviteStatus("Ошибка: это ваша собственная ссылка (нельзя пригласить себя)", true);
|
||||
return;
|
||||
}
|
||||
setInviteStatus(diag);
|
||||
}
|
||||
m_inviteSending = true;
|
||||
m_inviteTargetNodeId = targetNodeId;
|
||||
m_inviteSendBtn->setEnabled(false);
|
||||
|
||||
Reference in new issue
Block a user