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 }