summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkaccessftpbackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/access/qnetworkaccessftpbackend.cpp')
-rw-r--r--src/network/access/qnetworkaccessftpbackend.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/network/access/qnetworkaccessftpbackend.cpp b/src/network/access/qnetworkaccessftpbackend.cpp
index 246eb41657..e8695f9b56 100644
--- a/src/network/access/qnetworkaccessftpbackend.cpp
+++ b/src/network/access/qnetworkaccessftpbackend.cpp
@@ -211,7 +211,7 @@ void QNetworkAccessFtpBackend::ftpConnectionReady(QNetworkAccessCache::Cacheable
// no, defer the actual operation until after we've logged in
}
-void QNetworkAccessFtpBackend::disconnectFromFtp()
+void QNetworkAccessFtpBackend::disconnectFromFtp(CacheCleanupMode mode)
{
state = Disconnecting;
@@ -219,7 +219,12 @@ void QNetworkAccessFtpBackend::disconnectFromFtp()
disconnect(ftp, 0, this, 0);
QByteArray key = makeCacheKey(url());
- QNetworkAccessManagerPrivate::getObjectCache(this)->releaseEntry(key);
+ if (mode == RemoveCachedConnection) {
+ QNetworkAccessManagerPrivate::getObjectCache(this)->removeEntry(key);
+ ftp->dispose();
+ } else {
+ QNetworkAccessManagerPrivate::getObjectCache(this)->releaseEntry(key);
+ }
ftp = 0;
}
@@ -274,14 +279,7 @@ void QNetworkAccessFtpBackend::ftpDone()
}
// we're not connected, so remove the cache entry:
- QByteArray key = makeCacheKey(url());
- QNetworkAccessManagerPrivate::getObjectCache(this)->removeEntry(key);
-
- disconnect(ftp, 0, this, 0);
- ftp->dispose();
- ftp = 0;
-
- state = Disconnecting;
+ disconnectFromFtp(RemoveCachedConnection);
finished();
return;
}
@@ -301,7 +299,7 @@ void QNetworkAccessFtpBackend::ftpDone()
else
error(QNetworkReply::ContentAccessDenied, msg);
- disconnectFromFtp();
+ disconnectFromFtp(RemoveCachedConnection);
finished();
}