From bb5c2cbfa571e0d557853fec8d548f4b6d53a698 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Tue, 9 Aug 2016 16:01:29 +0200 Subject: [PATCH] Always follow redirects in network jobs (#4905) This is a move away from the original policy where jobs would only follow redirects in special cases. Two restrictions are in place: 1. We do not allow protocol downgrades (https -> http) 2. We stop redirects after we find them looping (e.g. old = new url, or indirectly when looping 10 times). This is closer to RFC conforming behavior, although currently we will treat 301 replies like they were 302. This is for a separate commit. Error handling (and display) also needs improvement. Addresses #2791 --- src/libsync/abstractnetworkjob.cpp | 2 +- src/libsync/networkjobs.cpp | 1 - src/libsync/propagatedownload.cpp | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libsync/abstractnetworkjob.cpp b/src/libsync/abstractnetworkjob.cpp index 4599ecaa2..aa3b49fde 100644 --- a/src/libsync/abstractnetworkjob.cpp +++ b/src/libsync/abstractnetworkjob.cpp @@ -43,7 +43,7 @@ namespace OCC { AbstractNetworkJob::AbstractNetworkJob(AccountPtr account, const QString &path, QObject *parent) : QObject(parent) , _timedout(false) - , _followRedirects(false) + , _followRedirects(true) , _account(account) , _ignoreCredentialFailure(false) , _reply(0) diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp index 09472be87..ab5598468 100644 --- a/src/libsync/networkjobs.cpp +++ b/src/libsync/networkjobs.cpp @@ -359,7 +359,6 @@ CheckServerJob::CheckServerJob(AccountPtr account, QObject *parent) : AbstractNetworkJob(account, QLatin1String(statusphpC) , parent) , _subdirFallback(false) { - _followRedirects = true; setIgnoreCredentialFailure(true); } diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index 2a126ee60..6473c4001 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -99,7 +99,6 @@ void GETFileJob::start() { } else { // Use direct URL setReply(davRequest("GET", _directDownloadUrl, req)); - _followRedirects = true; // (follow redirections for the direct download) } setupConnections(reply()); -- 2.39.5