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
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2020-12-09 15:14:05 +0300
committerHannah von Reth <vonreth@kde.org>2020-12-09 15:56:27 +0300
commit681353e21658783d7818a2328cf788930ab377f4 (patch)
treebb2c530211b58b706438a9706541f343cb41f113
parenta2bc2b70154cce5b31b6d02455a3603d04fc0795 (diff)
Log the final http request
-rw-r--r--changelog/unreleased/82895
-rw-r--r--src/libsync/accessmanager.cpp3
-rw-r--r--src/libsync/httplogger.cpp28
-rw-r--r--src/libsync/httplogger.h3
4 files changed, 18 insertions, 21 deletions
diff --git a/changelog/unreleased/8289 b/changelog/unreleased/8289
new file mode 100644
index 000000000..5d6d6e5cd
--- /dev/null
+++ b/changelog/unreleased/8289
@@ -0,0 +1,5 @@
+Bugfix: Log the final http request
+
+We fixed a bug where the http log did not include all headers of a request.
+
+https://github.com/owncloud/client/pull/8289
diff --git a/src/libsync/accessmanager.cpp b/src/libsync/accessmanager.cpp
index 18837a3ec..d58416dde 100644
--- a/src/libsync/accessmanager.cpp
+++ b/src/libsync/accessmanager.cpp
@@ -76,10 +76,9 @@ QNetworkReply *AccessManager::createRequest(QNetworkAccessManager::Operation op,
newRequest.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, http2EnabledEnv);
}
- HttpLogger::logRequest(newRequest, op, outgoingData);
const auto reply = QNetworkAccessManager::createRequest(op, newRequest, outgoingData);
- HttpLogger::logReplyOnFinished(reply);
+ HttpLogger::logRequest(reply, op, outgoingData);
return reply;
}
diff --git a/src/libsync/httplogger.cpp b/src/libsync/httplogger.cpp
index d386bfbbc..85b2ebbf1 100644
--- a/src/libsync/httplogger.cpp
+++ b/src/libsync/httplogger.cpp
@@ -85,24 +85,9 @@ void logHttp(const QByteArray &verb, const QString &url, const QByteArray &id, c
namespace OCC {
-
-void HttpLogger::logReplyOnFinished(const QNetworkReply *reply)
-{
- if (!lcNetworkHttp().isInfoEnabled()) {
- return;
- }
- QObject::connect(reply, &QNetworkReply::finished, reply, [reply] {
- logHttp(requestVerb(*reply),
- reply->url().toString(),
- reply->request().rawHeader(XRequestId()),
- reply->header(QNetworkRequest::ContentTypeHeader).toString(),
- reply->rawHeaderPairs(),
- const_cast<QNetworkReply *>(reply));
- });
-}
-
-void HttpLogger::logRequest(const QNetworkRequest &request, QNetworkAccessManager::Operation operation, QIODevice *device)
+void HttpLogger::logRequest(QNetworkReply *reply, QNetworkAccessManager::Operation operation, QIODevice *device)
{
+ const auto request = reply->request();
if (!lcNetworkHttp().isInfoEnabled()) {
return;
}
@@ -118,6 +103,15 @@ void HttpLogger::logRequest(const QNetworkRequest &request, QNetworkAccessManage
request.header(QNetworkRequest::ContentTypeHeader).toString(),
header,
device);
+
+ QObject::connect(reply, &QNetworkReply::finished, reply, [reply] {
+ logHttp(requestVerb(*reply),
+ reply->url().toString(),
+ reply->request().rawHeader(XRequestId()),
+ reply->header(QNetworkRequest::ContentTypeHeader).toString(),
+ reply->rawHeaderPairs(),
+ reply);
+ });
}
QByteArray HttpLogger::requestVerb(QNetworkAccessManager::Operation operation, const QNetworkRequest &request)
diff --git a/src/libsync/httplogger.h b/src/libsync/httplogger.h
index 1d8e59b68..2dde6c117 100644
--- a/src/libsync/httplogger.h
+++ b/src/libsync/httplogger.h
@@ -20,8 +20,7 @@
namespace OCC {
namespace HttpLogger {
- void OWNCLOUDSYNC_EXPORT logReplyOnFinished(const QNetworkReply *reply);
- void OWNCLOUDSYNC_EXPORT logRequest(const QNetworkRequest &request, QNetworkAccessManager::Operation operation, QIODevice *device);
+ void OWNCLOUDSYNC_EXPORT logRequest(QNetworkReply *reply, QNetworkAccessManager::Operation operation, QIODevice *device);
/**
* Helper to construct the HTTP verb used in the request