[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:08:23 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=6b7d7eb
The following commit has been merged in the master branch:
commit 6b7d7eb6f091c647c82f600a0f0b3507fa6ac328
Author: Marcin Ziemiński <zieminn at gmail.com>
Date: Wed Aug 13 18:34:04 2014 +0200
Changed specification of fingerprint management functions.
Signed-off-by: Marcin Ziemiński <zieminn at gmail.com>
---
otr-proxy/KTpProxy/otr-manager.cpp | 21 ++++----
otr-proxy/KTpProxy/otr-manager.h | 4 +-
otr-proxy/KTpProxy/otr-utils.cpp | 17 ++++++-
otr-proxy/KTpProxy/otr-utils.h | 2 +
otr-proxy/KTpProxy/proxy-service-adaptee.cpp | 32 ++++++------
otr-proxy/KTpProxy/proxy-service-adaptee.h | 4 +-
otr-proxy/KTpProxy/proxy-service.cpp | 8 +--
otr-proxy/KTpProxy/proxy-service.h | 4 +-
otr-proxy/KTpProxy/svc-proxy-service.cpp | 12 ++---
otr-proxy/KTpProxy/svc-proxy-service.h | 24 +++++----
otr-proxy/KTpProxy/types.cpp | 5 +-
otr-proxy/KTpProxy/types.h | 1 +
otr-proxy/spec/ProxyService.xml | 16 ++++--
otr-proxy/test/otr-test.cpp | 74 ++++++++++++++++++++++------
14 files changed, 147 insertions(+), 77 deletions(-)
diff --git a/otr-proxy/KTpProxy/otr-manager.cpp b/otr-proxy/KTpProxy/otr-manager.cpp
index 3d65594..e150899 100644
--- a/otr-proxy/KTpProxy/otr-manager.cpp
+++ b/otr-proxy/KTpProxy/otr-manager.cpp
@@ -531,40 +531,41 @@ Tp::FingerprintInfoList Manager::getKnownFingerprints(const QString &accountId)
const QString username = QLatin1String(context->username);
const QString hrFp = utils::humanReadable(fingerprint->fingerprint);
const bool trusted = otrl_context_is_fingerprint_trusted(fingerprint);
+ const bool used = utils::isFingerprintInUse(fingerprint);
- fingerprints << Tp::FingerprintInfo { username, hrFp, trusted };
+ fingerprints << Tp::FingerprintInfo { username, hrFp, trusted, used };
}
}
return fingerprints;
}
-bool Manager::trustFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprintInfo)
+bool Manager::trustFingerprint(const QString &accountId, const QString &contactName, const QString &fp, bool trust)
{
Fingerprint *fingerprint = utils::findFingerprint(
- getUserState(accountId)->userState(), fingerprintInfo.fingerprint, fingerprintInfo.contactName);
+ getUserState(accountId)->userState(), fp, contactName);
if(fingerprint != nullptr) {
- if(fingerprintInfo.isVerified) {
+ if(trust) {
otrl_context_set_trust(fingerprint, "VERIFIED");
} else {
otrl_context_set_trust(fingerprint, NULL);
}
- Q_EMIT fingerprintTrusted(accountId, fingerprintInfo.fingerprint, fingerprintInfo.isVerified);
+ Q_EMIT fingerprintTrusted(accountId, fp, trust);
return true;
}
return false;
}
-bool Manager::forgetFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprintInfo)
+bool Manager::forgetFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint)
{
- Fingerprint *fingerprint = utils::findFingerprint(
- getUserState(accountId)->userState(), fingerprintInfo.fingerprint, fingerprintInfo.contactName);
+ Fingerprint *fp = utils::findFingerprint(
+ getUserState(accountId)->userState(), fingerprint, contactName);
- if(fingerprint != nullptr) {
- otrl_context_forget_fingerprint(fingerprint, 1);
+ if(fp != nullptr && !utils::isFingerprintInUse(fp)) {
+ otrl_context_forget_fingerprint(fp, 1);
saveFingerprints(accountId);
return true;
diff --git a/otr-proxy/KTpProxy/otr-manager.h b/otr-proxy/KTpProxy/otr-manager.h
index 8b2d6d3..aed1ee4 100644
--- a/otr-proxy/KTpProxy/otr-manager.h
+++ b/otr-proxy/KTpProxy/otr-manager.h
@@ -65,8 +65,8 @@ namespace OTR
KeyGenerationWorker* createNewPrivateKey(const QString &accountId, const QString &accountName);
QString getFingerprintFor(const QString &accountId, const QString &accountName);
Tp::FingerprintInfoList getKnownFingerprints(const QString &accountId);
- bool trustFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint);
- bool forgetFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint);
+ bool trustFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint, bool trust);
+ bool forgetFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint);
void createInstag(Session *session);
diff --git a/otr-proxy/KTpProxy/otr-utils.cpp b/otr-proxy/KTpProxy/otr-utils.cpp
index 3d376cc..1a60f07 100644
--- a/otr-proxy/KTpProxy/otr-utils.cpp
+++ b/otr-proxy/KTpProxy/otr-utils.cpp
@@ -37,7 +37,7 @@ namespace utils
for(fingerprint = context->fingerprint_root.next;
fingerprint != nullptr; fingerprint = fingerprint->next)
{
- if(utils::humanReadable(fingerprint->fingerprint) == fp) {
+ if(humanReadable(fingerprint->fingerprint) == fp) {
return fingerprint;
}
}
@@ -46,6 +46,21 @@ namespace utils
return fingerprint;
}
+ bool isFingerprintInUse(Fingerprint *fingerprint)
+ {
+ // check if used in all parent contexts
+ for(ConnContext *ctx_iter = fingerprint->context->m_context;
+ ctx_iter != nullptr && ctx_iter->m_context == fingerprint->context->m_context;
+ ctx_iter = ctx_iter->next)
+ {
+ if(ctx_iter->active_fingerprint == fingerprint) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
TrustLevel getTrustLevel(const SessionContext &ctx, OtrlUserState userState, otrl_instag_t instance)
{
ConnContext *context = otrl_context_find(
diff --git a/otr-proxy/KTpProxy/otr-utils.h b/otr-proxy/KTpProxy/otr-utils.h
index a9ea8a9..ce96c85 100644
--- a/otr-proxy/KTpProxy/otr-utils.h
+++ b/otr-proxy/KTpProxy/otr-utils.h
@@ -53,6 +53,8 @@ namespace utils
Fingerprint* findFingerprint(OtrlUserState userState, const QString &fp, const QString &user);
+ bool isFingerprintInUse(Fingerprint *fingerprint);
+
inline QString accountIdFor(const QDBusObjectPath &objectPath)
{
QStringList elems = objectPath.path().split(QLatin1Char('/'));
diff --git a/otr-proxy/KTpProxy/proxy-service-adaptee.cpp b/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
index 94a6e0d..509349d 100644
--- a/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
+++ b/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
@@ -92,7 +92,7 @@ void ProxyServiceAdaptee::generatePrivateKey(const QDBusObjectPath &accountPath,
const Tp::Service::ProxyServiceAdaptor::GeneratePrivateKeyContextPtr &context)
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
- if(ac && ac->isValidAccount() &&
+ if(ac && ac->isValid() &&
ps->createNewPrivateKey(OTR::utils::accountIdFor(accountPath), ac->displayName())) {
context->setFinished();
} else {
@@ -106,10 +106,10 @@ void ProxyServiceAdaptee::getFingerprintForAccount(QDBusObjectPath accountPath,
const Tp::Service::ProxyServiceAdaptor::GetFingerprintForAccountContextPtr &context)
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
- if(ac && ac->isValidAccount()) {
+ if(ac && ac->isValid()) {
context->setFinished(ps->getFingerprintFor(OTR::utils::accountIdFor(accountPath), ac->displayName()));
} else {
- context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such valid account"));
+ context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such account"));
}
}
@@ -117,40 +117,40 @@ void ProxyServiceAdaptee::getKnownFingerprints(const QDBusObjectPath &accountPat
const Tp::Service::ProxyServiceAdaptor::GetKnownFingerprintsContextPtr &context)
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
- if(ac && ac->isValidAccount()) {
+ if(ac && ac->isValid()) {
context->setFinished(ps->getKnownFingerprints(OTR::utils::accountIdFor(accountPath)));
} else {
- context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such valid account"));
+ context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such account"));
}
}
-void ProxyServiceAdaptee::trustFingerprint(const QDBusObjectPath &accountPath, const Tp::FingerprintInfo &fingerprintInfo,
- const Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr &context)
+void ProxyServiceAdaptee::trustFingerprint(const QDBusObjectPath &accountPath, const QString &contactName,
+ const QString &fingerprint, bool trust, const Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr &context)
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
- if(ac && ac->isValidAccount()) {
- if(ps->trustFingerprint(OTR::utils::accountIdFor(accountPath), fingerprintInfo)) {
+ if(ac && ac->isValid()) {
+ if(ps->trustFingerprint(OTR::utils::accountIdFor(accountPath), contactName, fingerprint, trust)) {
context->setFinished();
} else {
context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("Invalid finerprint info"));
}
} else {
- context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such valid account"));
+ context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such account"));
}
}
-void ProxyServiceAdaptee::forgetFingerprint(const QDBusObjectPath &accountPath, const Tp::FingerprintInfo &fingerprintInfo,
- const Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr &context)
+void ProxyServiceAdaptee::forgetFingerprint(const QDBusObjectPath &accountPath, const QString &contactName,
+ const QString &fingerprint, const Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr &context)
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
- if(ac && ac->isValidAccount()) {
- if(ps->forgetFingerprint(OTR::utils::accountIdFor(accountPath), fingerprintInfo)) {
+ if(ac && ac->isValid()) {
+ if(ps->forgetFingerprint(OTR::utils::accountIdFor(accountPath), contactName, fingerprint)) {
context->setFinished();
} else {
context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT,
- QLatin1String("Invalid finerprint info"));
+ QLatin1String("Invalid finerprint info or fingerpirnt is in use"));
}
} else {
- context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such valid account"));
+ context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such account"));
}
}
diff --git a/otr-proxy/KTpProxy/proxy-service-adaptee.h b/otr-proxy/KTpProxy/proxy-service-adaptee.h
index 5a5f951..25b5e1e 100644
--- a/otr-proxy/KTpProxy/proxy-service-adaptee.h
+++ b/otr-proxy/KTpProxy/proxy-service-adaptee.h
@@ -62,9 +62,9 @@ class ProxyServiceAdaptee : public QObject
const Tp::Service::ProxyServiceAdaptor::GetFingerprintForAccountContextPtr &context);
void getKnownFingerprints(const QDBusObjectPath &account,
const Tp::Service::ProxyServiceAdaptor::GetKnownFingerprintsContextPtr &context);
- void trustFingerprint(const QDBusObjectPath &account, const Tp::FingerprintInfo &fingerprintInfo,
+ void trustFingerprint(const QDBusObjectPath &account, const QString &contactName, const QString &fingerprint, bool trust,
const Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr &context);
- void forgetFingerprint(const QDBusObjectPath &account, const Tp::FingerprintInfo &fingerprintInfo,
+ void forgetFingerprint(const QDBusObjectPath &account, const QString &contactName, const QString &fingerprint,
const Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr &context);
private Q_SLOTS:
diff --git a/otr-proxy/KTpProxy/proxy-service.cpp b/otr-proxy/KTpProxy/proxy-service.cpp
index ef3090c..79a0d00 100644
--- a/otr-proxy/KTpProxy/proxy-service.cpp
+++ b/otr-proxy/KTpProxy/proxy-service.cpp
@@ -224,14 +224,14 @@ Tp::FingerprintInfoList ProxyService::getKnownFingerprints(const QString &accoun
return manager.getKnownFingerprints(accountId);
}
-bool ProxyService::trustFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint)
+bool ProxyService::trustFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint, bool trust)
{
- return manager.trustFingerprint(accountId, fingerprint);
+ return manager.trustFingerprint(accountId, contactName, fingerprint, trust);
}
-bool ProxyService::forgetFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint)
+bool ProxyService::forgetFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint)
{
- return manager.forgetFingerprint(accountId, fingerprint);
+ return manager.forgetFingerprint(accountId, contactName, fingerprint);
}
void ProxyService::onKeyGenerationThreadFinished()
diff --git a/otr-proxy/KTpProxy/proxy-service.h b/otr-proxy/KTpProxy/proxy-service.h
index b384d42..3d46430 100644
--- a/otr-proxy/KTpProxy/proxy-service.h
+++ b/otr-proxy/KTpProxy/proxy-service.h
@@ -60,8 +60,8 @@ class ProxyService : public Tp::DBusService
bool createNewPrivateKey(const QString &accountId, const QString &accountName);
QString getFingerprintFor(const QString &accountId, const QString &accountName);
Tp::FingerprintInfoList getKnownFingerprints(const QString &accountId);
- bool trustFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint);
- bool forgetFingerprint(const QString &accountId, const Tp::FingerprintInfo &fingerprint);
+ bool trustFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint, bool trust);
+ bool forgetFingerprint(const QString &accountId, const QString &contactName, const QString &fingerprint);
OTR::Manager* managerOTR();
Tp::AccountManagerPtr accountManager();
diff --git a/otr-proxy/KTpProxy/svc-proxy-service.cpp b/otr-proxy/KTpProxy/svc-proxy-service.cpp
index 36ecdc9..b2b42f1 100644
--- a/otr-proxy/KTpProxy/svc-proxy-service.cpp
+++ b/otr-proxy/KTpProxy/svc-proxy-service.cpp
@@ -75,9 +75,9 @@ Tp::FingerprintInfoList ProxyServiceAdaptor::GetKnownFingerprints(const QDBusObj
return Tp::FingerprintInfoList();
}
-void ProxyServiceAdaptor::TrustFingerprint(const QDBusObjectPath& account, const Tp::FingerprintInfo& fingerprint, const QDBusMessage& dbusMessage)
+void ProxyServiceAdaptor::TrustFingerprint(const QDBusObjectPath& account, const QString& contactName, const QString& fingerprint, bool trust, const QDBusMessage& dbusMessage)
{
- if (!adaptee()->metaObject()->indexOfMethod("trustFingerprint(QDBusObjectPath,Tp::FingerprintInfo,Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr)") == -1) {
+ if (!adaptee()->metaObject()->indexOfMethod("trustFingerprint(QDBusObjectPath,QString,QString,bool,Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr)") == -1) {
dbusConnection().send(dbusMessage.createErrorReply(TP_QT_ERROR_NOT_IMPLEMENTED, QLatin1String("Not implemented")));
return;
}
@@ -85,13 +85,13 @@ void ProxyServiceAdaptor::TrustFingerprint(const QDBusObjectPath& account, const
TrustFingerprintContextPtr ctx = TrustFingerprintContextPtr(
new Tp::MethodInvocationContext< >(dbusConnection(), dbusMessage));
QMetaObject::invokeMethod(adaptee(), "trustFingerprint",
- Q_ARG(QDBusObjectPath, account), Q_ARG(Tp::FingerprintInfo, fingerprint),
+ Q_ARG(QDBusObjectPath, account), Q_ARG(QString, contactName), Q_ARG(QString, fingerprint), Q_ARG(bool, trust),
Q_ARG(Tp::Service::ProxyServiceAdaptor::TrustFingerprintContextPtr, ctx));
}
-void ProxyServiceAdaptor::ForgetFingerprint(const QDBusObjectPath& account, const Tp::FingerprintInfo& fingerprint, const QDBusMessage& dbusMessage)
+void ProxyServiceAdaptor::ForgetFingerprint(const QDBusObjectPath& account, const QString& contactName, const QString& fingerprint, const QDBusMessage& dbusMessage)
{
- if (!adaptee()->metaObject()->indexOfMethod("forgetFingerprint(QDBusObjectPath,Tp::FingerprintInfo,Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr)") == -1) {
+ if (!adaptee()->metaObject()->indexOfMethod("forgetFingerprint(QDBusObjectPath,QString,QString,Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr)") == -1) {
dbusConnection().send(dbusMessage.createErrorReply(TP_QT_ERROR_NOT_IMPLEMENTED, QLatin1String("Not implemented")));
return;
}
@@ -99,7 +99,7 @@ void ProxyServiceAdaptor::ForgetFingerprint(const QDBusObjectPath& account, cons
ForgetFingerprintContextPtr ctx = ForgetFingerprintContextPtr(
new Tp::MethodInvocationContext< >(dbusConnection(), dbusMessage));
QMetaObject::invokeMethod(adaptee(), "forgetFingerprint",
- Q_ARG(QDBusObjectPath, account), Q_ARG(Tp::FingerprintInfo, fingerprint),
+ Q_ARG(QDBusObjectPath, account), Q_ARG(QString, contactName), Q_ARG(QString, fingerprint),
Q_ARG(Tp::Service::ProxyServiceAdaptor::ForgetFingerprintContextPtr, ctx));
}
diff --git a/otr-proxy/KTpProxy/svc-proxy-service.h b/otr-proxy/KTpProxy/svc-proxy-service.h
index b87f6e4..c2c76fe 100644
--- a/otr-proxy/KTpProxy/svc-proxy-service.h
+++ b/otr-proxy/KTpProxy/svc-proxy-service.h
@@ -45,21 +45,20 @@ class TP_QT_EXPORT ProxyServiceAdaptor : public Tp::AbstractAdaptor
" </method>
"
" <method name=\"GetKnownFingerprints\">
"
" <arg direction=\"in\" type=\"o\" name=\"account\"/>
"
-" <arg direction=\"out\" type=\"a(ssb)\" name=\"fingerprints\">
"
+" <arg direction=\"out\" type=\"a(ssbb)\" name=\"fingerprints\">
"
" <annotation value=\"Tp::FingerprintInfoList\" name=\"com.trolltech.QtDBus.QtTypeName.Out0\"/>
"
" </arg>
"
" </method>
"
" <method name=\"TrustFingerprint\">
"
" <arg direction=\"in\" type=\"o\" name=\"account\"/>
"
-" <arg direction=\"in\" type=\"(ssb)\" name=\"fingerprint\">
"
-" <annotation value=\"Tp::FingerprintInfo\" name=\"com.trolltech.QtDBus.QtTypeName.In1\"/>
"
-" </arg>
"
+" <arg direction=\"in\" type=\"s\" name=\"contactName\"/>
"
+" <arg direction=\"in\" type=\"s\" name=\"fingerprint\"/>
"
+" <arg direction=\"in\" type=\"b\" name=\"trust\"/>
"
" </method>
"
" <method name=\"ForgetFingerprint\">
"
" <arg direction=\"in\" type=\"o\" name=\"account\"/>
"
-" <arg direction=\"in\" type=\"(ssb)\" name=\"fingerprint\">
"
-" <annotation value=\"Tp::FingerprintInfo\" name=\"com.trolltech.QtDBus.QtTypeName.In1\"/>
"
-" </arg>
"
+" <arg direction=\"in\" type=\"s\" name=\"contactName\"/>
"
+" <arg direction=\"in\" type=\"s\" name=\"fingerprint\"/>
"
" </method>
"
" <signal name=\"ProxyConnected\">
"
" <arg type=\"o\" name=\"proxy\"/>
"
@@ -173,7 +172,7 @@ public Q_SLOTS: // METHODS
* Begins a call to the exported D-Bus method
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list