Reduce timeout for some admin jobs
authorChristian Kamm <mail@ckamm.de>
Fri, 15 Sep 2017 07:11:52 +0000 (09:11 +0200)
committerRoeland Jago Douma <roeland@famdouma.nl>
Thu, 5 Oct 2017 20:01:32 +0000 (22:01 +0200)
The oauth token jobs and the wizard redirect check job shouldn't have
5min timeouts.

src/gui/creds/oauth.cpp
src/gui/owncloudsetupwizard.cpp
src/libsync/creds/httpcredentials.cpp

index 386f90190e873cfcefb384dadbed687fb869b510..0155b081042dfcc9704039fb5f606359e1bcc14c 100644 (file)
@@ -91,6 +91,7 @@ void OAuth::start()
                 requestBody->setData(arguments.query(QUrl::FullyEncoded).toLatin1());
 
                 auto job = _account->sendRequest("POST", requestToken, req, requestBody);
+                job->setTimeout(qMin(30 * 1000ll, job->timeoutMsec()));
                 QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this, socket](QNetworkReply *reply) {
                     auto jsonData = reply->readAll();
                     QJsonParseError jsonParseError;
index 3dd3bb117391be49877d3d888a0bf82415c0dc0f..33e55cb14b8368ae855b2dbf082e5d46c2a1b58d 100644 (file)
@@ -180,6 +180,10 @@ void OwncloudSetupWizard::slotContinueDetermineAuth()
     // redirect subpaths.
     auto redirectCheckJob = account->sendRequest("GET", account->url());
 
+    // Use a significantly reduced timeout for this redirect check:
+    // the 5-minute default is inappropriate.
+    redirectCheckJob->setTimeout(qMin(2000ll, redirectCheckJob->timeoutMsec()));
+
     // Grab the chain of permanent redirects and adjust the account url
     // accordingly
     auto permanentRedirects = std::make_shared<int>(0);
index a183ff5fbcbd338a13a5165a7c153f69e3b2fe7e..54a73fbf225410b3ad10e973218907349f949081 100644 (file)
@@ -356,6 +356,7 @@ bool HttpCredentials::refreshAccessToken()
     requestBody->setData(arguments.query(QUrl::FullyEncoded).toLatin1());
 
     auto job = _account->sendRequest("POST", requestToken, req, requestBody);
+    job->setTimeout(qMin(30 * 1000ll, job->timeoutMsec()));
     QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this](QNetworkReply *reply) {
         auto jsonData = reply->readAll();
         QJsonParseError jsonParseError;