summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch')
-rw-r--r--kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch108
1 files changed, 0 insertions, 108 deletions
diff --git a/kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch b/kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch
deleted file mode 100644
index 903bfe0d114..00000000000
--- a/kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 4564d77d3c644a7d1f99749c4e934969b4e21952 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-Date: Fri, 22 Dec 2017 14:22:49 +0100
-Subject: [PATCH] Fix duplicate authentication
-
-Summary:
-The response to EHLO triggers an authentication command, but with TLS
-two EHLOs are sent: For the 220 from the server and after TLS negotiation.
-However, sending it twice results in an unexpected "503 already authenticated"
-response which ends up getting parsed by the SendJob, causing confusion.
-
-BUG: 387926
-BUG: 388068
-
-Reviewers: mlaurent, dvratil
-
-Subscribers: rdieter, heikobecker, asn, #kde_pim, lbeltrame, cgiboudeaux
-
-Tags: #kde_pim
-
-Differential Revision: https://phabricator.kde.org/D9476
----
- src/session.cpp | 29 +++++++++++++++++++----------
- src/session_p.h | 1 +
- src/sessionthread.cpp | 1 -
- 3 files changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/src/session.cpp b/src/session.cpp
-index 861419d..4320adc 100644
---- a/src/session.cpp
-+++ b/src/session.cpp
-@@ -80,6 +80,19 @@ void SessionPrivate::setAuthenticationMethods(const QList<QByteArray> &authMetho
- }
- }
-
-+void SessionPrivate::startHandshake()
-+{
-+ QByteArray cmd;
-+ if (!m_ehloRejected) {
-+ cmd = "EHLO ";
-+ } else {
-+ cmd = "HELO ";
-+ }
-+ setState(Session::Handshake);
-+ const auto hostname = m_customHostname.isEmpty() ? m_thread->hostName() : m_customHostname;
-+ sendData(cmd + QUrl::toAce(hostname));
-+}
-+
-
-
- Session::Session(const QString &hostName, quint16 port, QObject *parent)
-@@ -277,15 +290,7 @@ void SessionPrivate::responseReceived(const ServerResponse &r)
-
- if (m_state == Session::Ready) {
- if (r.isCode(22) || m_ehloRejected) {
-- QByteArray cmd;
-- if (!m_ehloRejected) {
-- cmd = "EHLO ";
-- } else {
-- cmd = "HELO ";
-- }
-- setState(Session::Handshake);
-- const auto hostname = m_customHostname.isEmpty() ? m_thread->hostName() : m_customHostname;
-- sendData(cmd + QUrl::toAce(hostname));
-+ startHandshake();
- return;
- }
- }
-@@ -346,7 +351,11 @@ KTcpSocket::SslVersion SessionPrivate::negotiatedEncryption() const
-
- void SessionPrivate::encryptionNegotiationResult(bool encrypted, KTcpSocket::SslVersion version)
- {
-- Q_UNUSED(encrypted);
-+ if (encrypted) {
-+ // Get the updated auth methods
-+ startHandshake();
-+ }
-+
- m_sslVersion = version;
- }
-
-diff --git a/src/session_p.h b/src/session_p.h
-index 875f7be..90151f6 100644
---- a/src/session_p.h
-+++ b/src/session_p.h
-@@ -73,6 +73,7 @@ private Q_SLOTS:
-
- private:
-
-+ void startHandshake();
- void startNext();
- void startSocketTimer();
- void stopSocketTimer();
-diff --git a/src/sessionthread.cpp b/src/sessionthread.cpp
-index 1e4db8b..c195826 100644
---- a/src/sessionthread.cpp
-+++ b/src/sessionthread.cpp
-@@ -223,7 +223,6 @@ void SessionThread::sslConnected()
- } else {
- qCDebug(KSMTP_LOG) << "TLS negotiation done.";
-
-- QMetaObject::invokeMethod(this, "sendData", Qt::QueuedConnection, Q_ARG(QByteArray, "EHLO " + QUrl::toAce(hostName())));
- Q_EMIT encryptionNegotiationResult(true, m_socket->negotiatedSslVersion());
- }
- }
---
-2.13.6
-