[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:22 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=bf0613c

The following commit has been merged in the master branch:
commit bf0613cc10c6dfe82ce0af5ff5f79091618468c3
Author: Marcin Ziemiński <zieminn at gmail.com>
Date:   Wed Aug 6 14:30:34 2014 +0200

    Change OTR message state to plaintext on channel exit.
    
    Signed-off-by: Marcin Ziemiński <zieminn at gmail.com>
---
 otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp | 12 +++++++++++-
 otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h   |  2 ++
 otr-proxy/KTpProxy/otr-session.cpp               | 15 +++++++++++++++
 otr-proxy/KTpProxy/otr-session.h                 |  2 ++
 otr-proxy/test/otr-test.cpp                      | 11 +++++++++++
 5 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
index cda76f0..3bc09a9 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
+++ b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
@@ -106,7 +106,7 @@ OtrProxyChannel::Adaptee::Adaptee(OtrProxyChannel *pc,
         << " Account name: " << context.accountName
         << " recipient name: " << context.recipientName
         << " protocol: " << context.protocol;
-    connect(chan.data(), SIGNAL(invalidated(Tp::DBusProxy*,const QString&,const QString&)), SIGNAL(closed()));
+    connect(chan.data(), SIGNAL(invalidated(Tp::DBusProxy*,const QString&,const QString&)), SLOT(onChannelClosed()));
     connect(&otrSes, SIGNAL(trustLevelChanged(TrustLevel)), SLOT(onTrustLevelChanged(TrustLevel)));
     connect(&otrSes, SIGNAL(sessionRefreshed()), SIGNAL(sessionRefreshed()));
 
@@ -432,3 +432,13 @@ void OtrProxyChannel::Adaptee::onKeyGenerationFinished(const QString &accountId,
 
     aboutToInit = false;
 }
+
+void OtrProxyChannel::Adaptee::onChannelClosed()
+{
+    kDebug();
+    // we will not be able to send disconnect message so we just finish our own OTR session
+    if(isConnected) {
+        otrSes.forceUnencrypted();
+    }
+    Q_EMIT closed();
+}
diff --git a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
index 908edf7..7d1f712 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
+++ b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
@@ -85,6 +85,8 @@ class OtrProxyChannel::Adaptee : public QObject
         void onTrustLevelChanged(TrustLevel trustLevel);
         void onKeyGenerationFinished(const QString &accountId, bool error);
 
+        void onChannelClosed();
+
     Q_SIGNALS:
         void messageSent(const Tp::MessagePartList &content, uint flags, const QString &messageToken);
         void messageReceived(const Tp::MessagePartList &message);
diff --git a/otr-proxy/KTpProxy/otr-session.cpp b/otr-proxy/KTpProxy/otr-session.cpp
index ca9fa1c..25a2dad 100644
--- a/otr-proxy/KTpProxy/otr-session.cpp
+++ b/otr-proxy/KTpProxy/otr-session.cpp
@@ -126,6 +126,21 @@ namespace OTR
         return parent()->getFingerprintFor(ctx.accountId, ctx.accountName);
     }
 
+    void Session::forceUnencrypted()
+    {
+        if(trustLevel() == TrustLevel::NOT_PRIVATE) {
+            return;
+        }
+
+        ConnContext *context = otrl_context_find(userstate->userState(),
+                ctx.recipientName.toLocal8Bit(),
+                ctx.accountName.toLocal8Bit(),
+                ctx.protocol.toLocal8Bit(),
+                instance, 0, NULL, NULL, NULL);
+
+        otrl_context_force_plaintext(context);
+    }
+
     Message Session::startSession()
     {
         Message msg;
diff --git a/otr-proxy/KTpProxy/otr-session.h b/otr-proxy/KTpProxy/otr-session.h
index 2f5fd0c..2d3c43a 100644
--- a/otr-proxy/KTpProxy/otr-session.h
+++ b/otr-proxy/KTpProxy/otr-session.h
@@ -71,6 +71,8 @@ namespace OTR
             const SessionContext& context() const;
             QString remoteFingerprint() const;
             QString localFingerprint() const;
+            /** forces OTR session into plain text state */
+            void forceUnencrypted();
 
             /** Returns OTR init message */
             Message startSession();
diff --git a/otr-proxy/test/otr-test.cpp b/otr-proxy/test/otr-test.cpp
index 0ba40ba..2205ac9 100644
--- a/otr-proxy/test/otr-test.cpp
+++ b/otr-proxy/test/otr-test.cpp
@@ -140,6 +140,7 @@ class OTRTest : public QObject
         void testDoubleConversation();
         void testTrustDistrustFingerprint();
         void testSessionRefreshed();
+        void testForceUnencrypted();
 
         void cleanup();
 
@@ -527,6 +528,16 @@ void OTRTest::testSessionRefreshed()
     QVERIFY(bobEnv->levelChanged);
 }
 
+void OTRTest::testForceUnencrypted()
+{
+    TestSession &alice = aliceEnv->ses;
+    TestSession &bob = bobEnv->ses;
+
+    startSession(alice, bob);
+    alice.forceUnencrypted();
+    QCOMPARE(alice.trustLevel(), TrustLevel::NOT_PRIVATE);
+}
+
 void OTRTest::cleanup()
 {
     delete aliceEnv;

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list