aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.cpp
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-08-25 19:28:10 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-08-25 19:48:33 +0200
commit1c94d1b41eb352b31b2dc915fea95e26f6138284 (patch)
treeac3aa4c3b067fe1d004cad3f35443047ea961a0a /lib/connection.cpp
parent82f4efb0227e7e22e831733fae3952818b063ac2 (diff)
downloadlibquotient-1c94d1b41eb352b31b2dc915fea95e26f6138284.tar.gz
libquotient-1c94d1b41eb352b31b2dc915fea95e26f6138284.zip
KeyVerificationSession: cleanup
- Use std::chrono for the timeout (it's more readable and less ambiguous) and make it a local variable - Only pass a Connection object once to constructors - Ensure buildability even without E2EE (key verification is disabled in that case) - Reorder #includes - Other cleanup following clang-tidy warnings
Diffstat (limited to 'lib/connection.cpp')
-rw-r--r--lib/connection.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/connection.cpp b/lib/connection.cpp
index 3e1e556f..fbe365de 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -37,15 +37,17 @@
#ifdef Quotient_E2EE_ENABLED
# include "database.h"
+# include "keyverificationsession.h"
+
# include "e2ee/qolmaccount.h"
# include "e2ee/qolminboundsession.h"
# include "e2ee/qolmsession.h"
# include "e2ee/qolmutility.h"
# include "e2ee/qolmutils.h"
-# include "events/keyverificationevent.h"
-# include "keyverificationsession.h"
+# include "events/keyverificationevent.h"
#endif // Quotient_E2EE_ENABLED
+
#if QT_VERSION_MAJOR >= 6
# include <qt6keychain/keychain.h>
#else
@@ -988,7 +990,8 @@ void Connection::Private::consumeToDeviceEvents(Events&& toDeviceEvents)
}
switchOnType(*tdEvt,
[this](const KeyVerificationRequestEvent& event) {
- auto session = new KeyVerificationSession(q->userId(), event, q, false, q);
+ auto session = new KeyVerificationSession(q->userId(),
+ event, q, false);
emit q->newKeyVerificationSession(session);
}, [this](const KeyVerificationReadyEvent& event) {
emit q->incomingKeyVerificationReady(event);
@@ -1028,8 +1031,8 @@ void Connection::Private::handleEncryptedToDeviceEvent(const EncryptedEvent& eve
<< "is not found at the connection" << q->objectName();
}
}, [this](const KeyVerificationRequestEvent& event) {
- auto session = new KeyVerificationSession(q->userId(), event, q, true, q);
- emit q->newKeyVerificationSession(session);
+ emit q->newKeyVerificationSession(
+ new KeyVerificationSession(q->userId(), event, q, true));
}, [this](const KeyVerificationReadyEvent& event) {
emit q->incomingKeyVerificationReady(event);
}, [this](const KeyVerificationStartEvent& event) {
@@ -2274,9 +2277,9 @@ QString Connection::Private::curveKeyForUserDevice(const QString& userId,
}
QString Connection::edKeyForUserDevice(const QString& userId,
- const QString& device) const
+ const QString& deviceId) const
{
- return d->deviceKeys[userId][device].keys["ed25519:" % device];
+ return d->deviceKeys[userId][deviceId].keys["ed25519:" % deviceId];
}
bool Connection::Private::isKnownCurveKey(const QString& userId,
@@ -2458,12 +2461,10 @@ void Connection::saveCurrentOutboundMegolmSession(
session);
}
-#endif
-
void Connection::startKeyVerificationSession(const QString& deviceId)
{
- auto session = new KeyVerificationSession(userId(), deviceId, this, this);
- Q_EMIT newKeyVerificationSession(session);
+ auto* const session = new KeyVerificationSession(userId(), deviceId, this);
+ emit newKeyVerificationSession(session);
}
void Connection::sendToDevice(const QString& userId, const QString& deviceId,
@@ -2499,7 +2500,7 @@ void Connection::sendToDevice(const QString& userId, const QString& deviceId,
{ { userId, { { deviceId, event->contentJson() } } } });
}
-bool Connection::isVerifiedSession(const QString& megolmSessionId)
+bool Connection::isVerifiedSession(const QString& megolmSessionId) const
{
auto query = database()->prepareQuery("SELECT olmSessionId FROM inbound_megolm_sessions WHERE sessionId=:sessionId;"_ls);
query.bindValue(":sessionId", megolmSessionId);
@@ -2520,3 +2521,4 @@ bool Connection::isVerifiedSession(const QString& megolmSessionId)
database()->execute(query);
return query.next() && query.value("verified").toBool();
}
+#endif