AusweisApp2/patches/qt-Enable-use-of-the-same-N...

60 lines
2.3 KiB
Diff

From 017de42929811e384a9741d46e4553e74605b79c Mon Sep 17 00:00:00 2001
From: Lars Schmertmann <Lars.Schmertmann@governikus.de>
Date: Tue, 13 Sep 2016 14:24:25 +0200
Subject: [PATCH] Introduce QNetworkAccessManager::useAuthenticationManagerFrom
Sometimes it is desirable to use a new connection but keep already
entered user credentials for usability reasons. This is now possible by
using the AuthenticationManager from a different NetworkAccessManager.
[ChangeLog][QtCore][QNetworkAccessManager] Introduce useAuthenticationManagerFrom()
Change-Id: If61f0d03fc8b2f159bad869d0a2b650170e1e174
---
src/network/access/qnetworkaccessmanager.cpp | 15 +++++++++++++++
src/network/access/qnetworkaccessmanager.h | 2 ++
2 files changed, 17 insertions(+)
diff --git x/qtbase/src/network/access/qnetworkaccessmanager.cpp y/qtbase/src/network/access/qnetworkaccessmanager.cpp
index 927e103..c6dfca4 100644
--- x/qtbase/src/network/access/qnetworkaccessmanager.cpp
+++ y/qtbase/src/network/access/qnetworkaccessmanager.cpp
@@ -1083,6 +1083,21 @@ void QNetworkAccessManager::connectToHost(const QString &hostName, quint16 port)
}
/*!
+ \since 5.9
+
+ Sets the manager's authentication manager to be the one from
+ \a accessManager. This is useful when you need to use a new connection,
+ but keep already-entered user-credentials for usability reasons.
+*/
+void QNetworkAccessManager::useAuthenticationManagerFrom(const QNetworkAccessManager& accessManager)
+{
+ const QNetworkAccessManagerPrivate * const e = accessManager.d_func();
+
+ Q_D(QNetworkAccessManager);
+ d->authenticationManager = e->authenticationManager;
+}
+
+/*!
\since 4.7
Sends a custom request to the server identified by the URL of \a request.
diff --git x/qtbase/src/network/access/qnetworkaccessmanager.h y/qtbase/src/network/access/qnetworkaccessmanager.h
index 4ce4757..66e3ffb 100644
--- x/qtbase/src/network/access/qnetworkaccessmanager.h
+++ y/qtbase/src/network/access/qnetworkaccessmanager.h
@@ -143,6 +143,8 @@ public:
#endif
void connectToHost(const QString &hostName, quint16 port = 80);
+ void useAuthenticationManagerFrom(const QNetworkAccessManager& accessManager);
+
Q_SIGNALS:
#ifndef QT_NO_NETWORKPROXY
void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator);
--
2.9.3