Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2021-01-13 12:00:34 +0300
committerHannah von Reth <vonreth@kde.org>2021-01-13 12:13:33 +0300
commitc51d569a578bfbefecd2e0ee123aeac66ff4cc7c (patch)
treefb277efb61bbfffb4f2f34e1a2a128d2f11e6157 /src
parent1c103a42a9b02f95ec8f8420985a447b587cc5bd (diff)
Move needsRetry to AbstractNetworkJob
Diffstat (limited to 'src')
-rw-r--r--src/libsync/abstractnetworkjob.cpp30
-rw-r--r--src/libsync/abstractnetworkjob.h5
-rw-r--r--src/libsync/jobqueue.cpp31
-rw-r--r--src/libsync/jobqueue.h3
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();
/**