Add a 'Content-Length: 0' header to initial POST requests
authorMichael Schuster <michael@schuster.ms>
Thu, 10 Oct 2019 03:17:22 +0000 (05:17 +0200)
committerMichael Schuster <michael@schuster.ms>
Thu, 10 Oct 2019 03:17:22 +0000 (05:17 +0200)
The webserver lighttpd rejected POST requests without a Content-length
header with "411 Length Required".

See: https://github.com/nextcloud/desktop/issues/1473

Signed-off-by: Michael Schuster <michael@schuster.ms>
src/gui/creds/flow2auth.cpp

index e570e01d481fddfce6459494e391b3d47f296b06..3a9db471ab0f74f04863dc323c71f26f8d606472 100644 (file)
@@ -52,7 +52,11 @@ void Flow2Auth::openBrowser()
     // Step 1: Initiate a login, do an anonymous POST request
     QUrl url = Utility::concatUrlPath(_account->url().toString(), QLatin1String("/index.php/login/v2"));
 
-    auto job = _account->sendRequest("POST", url);
+    // add 'Content-Length: 0' header (see https://github.com/nextcloud/desktop/issues/1473)
+    QNetworkRequest req;
+    req.setHeader(QNetworkRequest::ContentLengthHeader, "0");
+
+    auto job = _account->sendRequest("POST", url, req);
     job->setTimeout(qMin(30 * 1000ll, job->timeoutMsec()));
 
     QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this](QNetworkReply *reply) {