diff options
author | Sebastian Lösch <Sebastian.Loesch@governikus.de> | 2016-08-10 16:51:34 +0200 |
---|---|---|
committer | André Klitzing <aklitzing@gmail.com> | 2017-01-16 11:04:46 +0000 |
commit | 14bff46df4870a36ae0a110d7c72bdb42b30e22a (patch) | |
tree | 94e5cb76da93348b4a1b06dd5f356d13c4f21e24 /src/network/access/qnetworkaccessmanager.cpp | |
parent | abb47fc6803a3246b67ca6c8357f34ebd0b3e9cc (diff) |
Introduce QNetworkAccessManager::clearConnectionCache()
Sometimes it is desirable to use a new connection but keep already
entered user credentials for usability reasons. This is now possible by
clearing the connection cache (but keeping the authentication cache).
Change-Id: I2f5f64836ce19f81c8525701783a3da823dd468e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/access/qnetworkaccessmanager.cpp')
-rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 6d5b2400f1..b763547a15 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1352,10 +1352,26 @@ QStringList QNetworkAccessManager::supportedSchemesImplementation() const This function is useful for doing auto tests. + \sa clearConnectionCache() */ void QNetworkAccessManager::clearAccessCache() { - QNetworkAccessManagerPrivate::clearCache(this); + QNetworkAccessManagerPrivate::clearAuthenticationCache(this); + QNetworkAccessManagerPrivate::clearConnectionCache(this); +} + +/*! + \since 5.9 + + Flushes the internal cache of network connections. + In contrast to clearAccessCache() the authentication data + is preserved. + + \sa clearAccessCache() +*/ +void QNetworkAccessManager::clearConnectionCache() +{ + QNetworkAccessManagerPrivate::clearConnectionCache(this); } void QNetworkAccessManagerPrivate::_q_replyFinished() @@ -1552,11 +1568,14 @@ QList<QNetworkProxy> QNetworkAccessManagerPrivate::queryProxy(const QNetworkProx } #endif -void QNetworkAccessManagerPrivate::clearCache(QNetworkAccessManager *manager) +void QNetworkAccessManagerPrivate::clearAuthenticationCache(QNetworkAccessManager *manager) { - manager->d_func()->objectCache.clear(); manager->d_func()->authenticationManager->clearCache(); +} +void QNetworkAccessManagerPrivate::clearConnectionCache(QNetworkAccessManager *manager) +{ + manager->d_func()->objectCache.clear(); manager->d_func()->destroyThread(); } |