File indexing completed on 2024-05-12 05:22:15

0001 /*
0002  * This file is part of LibKGAPI library
0003  *
0004  * SPDX-FileCopyrightText: 2018 - 2020 Daniel Vrátil <dvratil@kde.org>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #include "debug.h"
0010 #include "networkaccessmanagerfactory_p.h"
0011 
0012 #include <QNetworkAccessManager>
0013 
0014 using namespace KGAPI2;
0015 
0016 std::unique_ptr<NetworkAccessManagerFactory> NetworkAccessManagerFactory::sInstance;
0017 
0018 class QtNetworkAccessManagerFactory : public NetworkAccessManagerFactory
0019 {
0020 public:
0021     QNetworkAccessManager *networkAccessManager(QObject *parent) const override
0022     {
0023         auto nam = new QNetworkAccessManager(parent);
0024         nam->setStrictTransportSecurityEnabled(true);
0025         nam->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy);
0026         return nam;
0027     }
0028 };
0029 
0030 void NetworkAccessManagerFactory::setFactory(NetworkAccessManagerFactory *factory)
0031 {
0032     sInstance.reset(factory);
0033 }
0034 
0035 NetworkAccessManagerFactory *NetworkAccessManagerFactory::instance()
0036 {
0037     if (!sInstance) {
0038         setFactory(new QtNetworkAccessManagerFactory);
0039     }
0040     return sInstance.get();
0041 }