diff --git a/kioslave/pop3/CMakeLists.txt b/kioslave/pop3/CMakeLists.txt --- a/kioslave/pop3/CMakeLists.txt +++ b/kioslave/pop3/CMakeLists.txt @@ -9,7 +9,7 @@ add_library(kio_pop3 MODULE ${kio_pop3_PART_SRCS}) -target_link_libraries(kio_pop3 KF5::KIOCore KF5::I18n Sasl2::Sasl2) +target_link_libraries(kio_pop3 KF5::KIOCore KF5::I18n Qt5::Network Sasl2::Sasl2) set_target_properties(kio_pop3 PROPERTIES OUTPUT_NAME "pop3") install(TARGETS kio_pop3 DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kio/ ) diff --git a/kioslave/pop3/pop3.cpp b/kioslave/pop3/pop3.cpp --- a/kioslave/pop3/pop3.cpp +++ b/kioslave/pop3/pop3.cpp @@ -40,8 +40,10 @@ #include #include #include +#include #include +#include #define GREETING_BUF_LEN 1024 #define MAX_RESPONSE_LEN 512 @@ -613,6 +615,21 @@ qCDebug(POP3_LOG) << "Reusing old connection"; return true; } + + if (!hasMetaData(QStringLiteral("useProxy")) + || metaData(QStringLiteral("useProxy")) != QLatin1String("on")) { + qCDebug(POP3_LOG) << "requested to use no proxy"; + + KTcpSocket *sock = qobject_cast(socket()); + if (sock) { + QNetworkProxy proxy; + proxy.setType(QNetworkProxy::NoProxy); + sock->setProxy(proxy); + } else { + qCWarning(POP3_LOG) << "no socket, cannot set no proxy"; + } + } + do { closeConnection(); diff --git a/resources/pop3/jobs.cpp b/resources/pop3/jobs.cpp --- a/resources/pop3/jobs.cpp +++ b/resources/pop3/jobs.cpp @@ -80,6 +80,7 @@ m.insert(QStringLiteral("progress"), QStringLiteral("off")); m.insert(QStringLiteral("tls"), Settings::self()->useTLS() ? QStringLiteral("on") : QStringLiteral("off")); m.insert(QStringLiteral("pipelining"), (Settings::self()->pipelining()) ? QStringLiteral("on") : QStringLiteral("off")); + m.insert(QStringLiteral("useProxy"), Settings::self()->useProxy() ? QStringLiteral("on") : QStringLiteral("off")); int type = Settings::self()->authenticationMethod(); switch (type) { case MailTransport::Transport::EnumAuthenticationType::PLAIN: @@ -98,6 +99,7 @@ m.insert(QStringLiteral("auth"), authenticationToString(type)); break; } + return m; } diff --git a/resources/pop3/settings.kcfg b/resources/pop3/settings.kcfg --- a/resources/pop3/settings.kcfg +++ b/resources/pop3/settings.kcfg @@ -38,6 +38,10 @@ false + + + false + false