32 #include "network-web/basenetworkaccessmanager.h"
34 #include "definitions/definitions.h"
35 #include "miscellaneous/settings.h"
36 #include "miscellaneous/application.h"
38 #include <QNetworkProxy>
39 #include <QNetworkReply>
40 #include <QNetworkRequest>
44 : QNetworkAccessManager(parent) {
45 connect(
this, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
46 this, SLOT(
onSslErrors(QNetworkReply*,QList<QSslError>)));
51 BaseNetworkAccessManager::~BaseNetworkAccessManager() {
55 QNetworkProxy new_proxy;
56 QNetworkProxy::ProxyType selected_proxy_type =
static_cast<QNetworkProxy::ProxyType
>(qApp->settings()->value(APP_CFG_PROXY,
58 QNetworkProxy::NoProxy).toInt());
60 if (selected_proxy_type == QNetworkProxy::NoProxy) {
62 setProxy(QNetworkProxy::NoProxy);
65 else if (selected_proxy_type == QNetworkProxy::DefaultProxy) {
66 setProxy(QNetworkProxy::applicationProxy());
70 Settings *settings = qApp->settings();
73 new_proxy.setType(selected_proxy_type);
74 new_proxy.setHostName(settings->
value(APP_CFG_PROXY,
76 new_proxy.setPort(settings->
value(APP_CFG_PROXY,
78 new_proxy.setUser(settings->
value(APP_CFG_PROXY,
79 "username").toString());
80 new_proxy.setPassword(settings->
value(APP_CFG_PROXY,
81 "password").toString());
84 qDebug(
"Settings of BaseNetworkAccessManager loaded.");
88 const QList<QSslError> &error) {
89 qDebug(
"SSL errors for '%s': '%s' (code %d).",
90 qPrintable(reply->url().toString()),
91 qPrintable(reply->errorString()),
92 (
int) reply->error());
94 reply->ignoreSslErrors(error);
98 const QNetworkRequest &request,
99 QIODevice *outgoingData) {
100 QNetworkRequest new_request = request;
104 new_request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute,
108 new_request.setRawHeader(USER_AGENT_HTTP_HEADER,
109 QString(APP_USERAGENT).toLocal8Bit());
111 return QNetworkAccessManager::createRequest(op, new_request, outgoingData);
BaseNetworkAccessManager(QObject *parent=0)
Constructor.
virtual void loadSettings()
Loads network settings for this instance.
void onSslErrors(QNetworkReply *reply, const QList< QSslError > &error)
Catches and processes SSL errors.
Application-wide settings mechanism.
QVariant value(const QString §ion, const QString &key, const QVariant &default_value=QVariant())
Getter/setter for settings values.
QNetworkReply * createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
Creates custom request.