diff options
Diffstat (limited to 'kde-apps/ksmtp/files')
-rw-r--r-- | kde-apps/ksmtp/files/ksmtp-17.12.0-correct-hostname.patch | 65 | ||||
-rw-r--r-- | kde-apps/ksmtp/files/ksmtp-17.12.0-ehlo-auth-fix.patch | 108 |
2 files changed, 0 insertions, 173 deletions
diff --git a/kde-apps/ksmtp/files/ksmtp-17.12.0-correct-hostname.patch b/kde-apps/ksmtp/files/ksmtp-17.12.0-correct-hostname.patch deleted file mode 100644 index 8860c59ebfde..000000000000 --- a/kde-apps/ksmtp/files/ksmtp-17.12.0-correct-hostname.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 5199ed07428a03f1aa340da3ae99fcfa62ba2751 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt <fabian@ritter-vogt.de> -Date: Fri, 22 Dec 2017 22:32:49 +0100 -Subject: Send the correct hostname with the HELO/EHLO command - -Summary: -It sent the server's hostname previously, which some reject. - -BUG: 387926 - -Test Plan: Ran nc as smtp server, uses the right hostname for EHLO now. - -Reviewers: mlaurent, dvratil - -Subscribers: #kde_pim - -Tags: #kde_pim - -Differential Revision: https://phabricator.kde.org/D9485 ---- - src/session.cpp | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/session.cpp b/src/session.cpp -index 4320adc..0be26a9 100644 ---- a/src/session.cpp -+++ b/src/session.cpp -@@ -27,6 +27,7 @@ - #include "ksmtp_debug.h" - - #include <QHostAddress> -+#include <QHostInfo> - #include <QUrl> - #include <QEventLoop> - #include <QPointer> -@@ -82,6 +83,18 @@ void SessionPrivate::setAuthenticationMethods(const QList<QByteArray> &authMetho - - void SessionPrivate::startHandshake() - { -+ QString hostname = m_customHostname; -+ -+ if (hostname.isEmpty()) { -+ // FIXME: QHostInfo::fromName can get a FQDN, but does a DNS lookup -+ hostname = QHostInfo::localHostName(); -+ if (hostname.isEmpty()) { -+ hostname = QStringLiteral("localhost.invalid"); -+ } else if (!hostname.contains(QLatin1Char('.'))) { -+ hostname += QStringLiteral(".localnet"); -+ } -+ } -+ - QByteArray cmd; - if (!m_ehloRejected) { - cmd = "EHLO "; -@@ -89,7 +102,6 @@ void SessionPrivate::startHandshake() - cmd = "HELO "; - } - setState(Session::Handshake); -- const auto hostname = m_customHostname.isEmpty() ? m_thread->hostName() : m_customHostname; - sendData(cmd + QUrl::toAce(hostname)); - } - --- -cgit v0.11.2 - 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 903bfe0d1144..000000000000 --- 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 - |