diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2021-01-13 12:00:34 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2021-01-13 12:13:33 +0300 |
commit | c51d569a578bfbefecd2e0ee123aeac66ff4cc7c (patch) | |
tree | fb277efb61bbfffb4f2f34e1a2a128d2f11e6157 /src | |
parent | 1c103a42a9b02f95ec8f8420985a447b587cc5bd (diff) |
Move needsRetry to AbstractNetworkJob
Diffstat (limited to 'src')
-rw-r--r-- | src/libsync/abstractnetworkjob.cpp | 30 | ||||
-rw-r--r-- | src/libsync/abstractnetworkjob.h | 5 | ||||
-rw-r--r-- | src/libsync/jobqueue.cpp | 31 | ||||
-rw-r--r-- | src/libsync/jobqueue.h | 3 |
4 files changed, 35 insertions, 34 deletions
diff --git a/src/libsync/abstractnetworkjob.cpp b/src/libsync/abstractnetworkjob.cpp index 22709c784..e52c7f3b6 100644 --- a/src/libsync/abstractnetworkjob.cpp +++ b/src/libsync/abstractnetworkjob.cpp @@ -40,6 +40,11 @@ Q_DECLARE_METATYPE(QTimer *) +namespace { +const int MaxRetryCount = 5; +} + + namespace OCC { Q_LOGGING_CATEGORY(lcNetworkJob, "sync.networkjob", QtInfoMsg) @@ -128,6 +133,31 @@ void AbstractNetworkJob::setAuthenticationJob(bool b) _isAuthenticationJob = b; } +bool AbstractNetworkJob::needsRetry() const +{ + if (isAuthenticationJob()) { + qCDebug(lcNetworkJob) << "Not Retry auth job" << this << url(); + return false; + } + if (retryCount() >= MaxRetryCount) { + qCDebug(lcNetworkJob) << "Not Retry too many retries" << retryCount() << this << url(); + return false; + } + + if (auto reply = this->reply()) { + if (!reply->attribute(QNetworkRequest::RedirectionTargetAttribute).isNull()) { + return true; + } + if (reply->error() != QNetworkReply::NoError) { + if (reply->error() == QNetworkReply::AuthenticationRequiredError) { + return true; + } + } + } + return false; +} + + void AbstractNetworkJob::sendRequest(const QByteArray &verb, const QUrl &url, QNetworkRequest req, QIODevice *requestBody) { diff --git a/src/libsync/abstractnetworkjob.h b/src/libsync/abstractnetworkjob.h index cbfdda600..b84d27017 100644 --- a/src/libsync/abstractnetworkjob.h +++ b/src/libsync/abstractnetworkjob.h @@ -54,7 +54,7 @@ public: void setPath(const QString &path); QString path() const { return _path; } - QUrl url() { return _request.url(); } + QUrl url() const { return _request.url(); } QNetworkReply *reply() const { return _reply; } @@ -100,6 +100,9 @@ public: /** How many times was that job retried */ int retryCount() const { return _retryCount; } + + virtual bool needsRetry() const; + public slots: void setTimeout(qint64 msec); void resetTimeout(); diff --git a/src/libsync/jobqueue.cpp b/src/libsync/jobqueue.cpp index 55022fcdd..e1ad5ec97 100644 --- a/src/libsync/jobqueue.cpp +++ b/src/libsync/jobqueue.cpp @@ -19,11 +19,6 @@ #include <QLoggingCategory> -namespace { -const int MaxRetryCount = 5; -} - - namespace OCC { Q_LOGGING_CATEGORY(lcJobQUeue, "sync.networkjob.jobqueue", QtDebugMsg) @@ -62,7 +57,7 @@ bool JobQueue::isBlocked() const bool JobQueue::retry(AbstractNetworkJob *job) { - if (!needsRetry(job)) { + if (!job->needsRetry()) { return false; } if (_blocked) { @@ -102,30 +97,6 @@ size_t JobQueue::size() const return _jobs.size(); } -bool JobQueue::needsRetry(AbstractNetworkJob *job) const -{ - if (job->isAuthenticationJob()) { - qCDebug(lcJobQUeue) << "Not Retry auth job" << job << job->url(); - return false; - } - if (job->retryCount() >= MaxRetryCount) { - qCDebug(lcJobQUeue) << "Not Retry too many retries" << job->retryCount() << job << job->url(); - return false; - } - - if (auto reply = job->reply()) { - if (!reply->attribute(QNetworkRequest::RedirectionTargetAttribute).isNull()) { - return true; - } - if (reply->error() != QNetworkReply::NoError) { - if (reply->error() == QNetworkReply::AuthenticationRequiredError) { - return true; - } - } - } - return false; -} - JobQueueGuard::JobQueueGuard(JobQueue *queue) : _queue(queue) { diff --git a/src/libsync/jobqueue.h b/src/libsync/jobqueue.h index 6a1806fb7..82b90d090 100644 --- a/src/libsync/jobqueue.h +++ b/src/libsync/jobqueue.h @@ -48,9 +48,6 @@ public: size_t size() const; private: - bool needsRetry(AbstractNetworkJob *job) const; - - void block(); void unblock(); /** |