chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
This commit is contained in:
1 parent
a01a4ddba4
commit
75e39d2fee
41 files changed
+2206
-471
No files matched your search
@@ -116,6 +116,17 @@ InviteData decodeInviteLink(const QString& link) {
|
||||
chId = (chId << 8) | data[off++];
|
||||
d.channelId = chId;
|
||||
|
||||
/* join_key: uint64 big-endian */
|
||||
if (off + 8 > len) {
|
||||
d.error = QStringLiteral("truncated at join_key");
|
||||
GUI_ERROR("decodeInviteLink: truncated at join_key");
|
||||
return d;
|
||||
}
|
||||
uint64_t jk = 0;
|
||||
for (int i = 0; i < 8; i++)
|
||||
jk = (jk << 8) | data[off++];
|
||||
d.joinKey = jk;
|
||||
|
||||
bool firstBlock = true;
|
||||
while (off + 1 <= len) {
|
||||
uint8_t header = data[off++];
|
||||
|
||||
@@ -21,6 +21,7 @@ struct InviteAddr {
|
||||
|
||||
struct InviteData {
|
||||
uint64_t channelId = 0;
|
||||
uint64_t joinKey = 0; // 64-битный ключ входа (генерируется инвайтером)
|
||||
QByteArray pubkey;
|
||||
QList<InviteAddr> addrs;
|
||||
QString password;
|
||||
|
||||
@@ -203,7 +203,7 @@ void JoinDialog::onConnectClicked() {
|
||||
|
||||
chat_sync_connect_from_invite(d.channelId, nodeId,
|
||||
(const uint8_t*)d.pubkey.constData(),
|
||||
(const uint8_t*)addrsBuf.constData(), addrCount, addrsBuf.size(), pass);
|
||||
(const uint8_t*)addrsBuf.constData(), addrCount, addrsBuf.size(), pass, d.joinKey);
|
||||
}
|
||||
|
||||
void JoinDialog::onConnectResult(uint64_t nodeId, uint64_t channelId, int result) {
|
||||
|
||||
Reference in new issue
Block a user