[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [discover] libdiscover/backends/PackageKitBackend: Forward proxy information to the PackageKit daemo
From:       Aleix Pol <null () kde ! org>
Date:       2018-09-20 10:15:44
Message-ID: E1g2vzs-0004RO-Kx () code ! kde ! org
[Download RAW message or body]

Git commit e08bc8fd55b90895560a60cccc0d1b583c6e42a9 by Aleix Pol.
Committed on 20/09/2018 at 10:13.
Pushed by apol into branch 'master'.

Forward proxy information to the PackageKit daemon

At start and upon change.

BUG: 398321

M  +31   -3    libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
M  +1    -0    libdiscover/backends/PackageKitBackend/PackageKitBackend.h

https://commits.kde.org/discover/e08bc8fd55b90895560a60cccc0d1b583c6e42a9

diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp index \
                eeab5e69..8ed581cc 100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -39,14 +39,16 @@
 #include <QTimer>
 #include <QStandardPaths>
 #include <QFile>
+#include <QAction>
+#include <QMimeDatabase>
+#include <QFileSystemWatcher>
 
 #include <PackageKit/Transaction>
 #include <PackageKit/Daemon>
 #include <PackageKit/Details>
 
 #include <KLocalizedString>
-#include <QAction>
-#include <QMimeDatabase>
+#include <KProtocolManager>
 
 #include "utils.h"
 #include "config-paths.h"
@@ -92,6 +94,13 @@ PackageKitBackend::PackageKitBackend(QObject* parent)
     connect(PackageKit::Daemon::global(), &PackageKit::Daemon::isRunningChanged, \
                this, &PackageKitBackend::checkDaemonRunning);
     connect(m_reviews.data(), &OdrsReviewsBackend::ratingsReady, this, \
&AbstractResourcesBackend::emitRatingsReady);  
+    auto proxyWatch = new QFileSystemWatcher(this);
+    proxyWatch->addPath(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) \
+ QLatin1String("/kioslaverc")); +    connect(proxyWatch, \
&QFileSystemWatcher::fileChanged, this, [this](){ +        \
KProtocolManager::reparseConfiguration(); +        updateProxy();
+    });
+
     SourcesModel::global()->addSourcesBackend(new PackageKitSourcesBackend(this));
 
     reloadPackageList();
@@ -104,6 +113,24 @@ PackageKitBackend::PackageKitBackend(QObject* parent)
 
 PackageKitBackend::~PackageKitBackend() = default;
 
+void PackageKitBackend::updateProxy()
+{
+
+    if (PackageKit::Daemon::isRunning()) {
+        static bool everHad = KProtocolManager::useProxy();
+        if (!everHad && !KProtocolManager::useProxy())
+            return;
+
+        everHad = KProtocolManager::useProxy();
+        PackageKit::Daemon::global()->setProxy(KProtocolManager::proxyFor(QLatin1String("http")),
 +                                               \
KProtocolManager::proxyFor(QLatin1String("https")), +                                 \
KProtocolManager::proxyFor(QLatin1String("ftp")), +                                   \
KProtocolManager::proxyFor(QLatin1String("socks")), +                                 \
{}, +                                               {});
+    }
+}
+
 bool PackageKitBackend::isFetching() const
 {
     return m_isFetching;
@@ -598,7 +625,8 @@ void PackageKitBackend::checkDaemonRunning()
 {
     if (!PackageKit::Daemon::isRunning()) {
         qWarning() << "PackageKit stopped running!";
-    }
+    } else
+        updateProxy();
 }
 
 AbstractBackendUpdater* PackageKitBackend::backendUpdater() const
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h index 4cace1bc..5f593571 \
                100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
@@ -100,6 +100,7 @@ class DISCOVERCOMMON_EXPORT PackageKitBackend : public \
AbstractResourcesBackend  void includePackagesToAdd();
         void performDetailsFetch();
         AppPackageKitResource* addComponent(const AppStream::Component& component, \
const QStringList& pkgNames); +        void updateProxy();
 
         QScopedPointer<AppStream::Pool> m_appdata;
         PackageKitUpdater* m_updater;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic