diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2020-12-09 15:14:05 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2020-12-09 15:56:27 +0300 |
commit | 681353e21658783d7818a2328cf788930ab377f4 (patch) | |
tree | bb2c530211b58b706438a9706541f343cb41f113 | |
parent | a2bc2b70154cce5b31b6d02455a3603d04fc0795 (diff) |
Log the final http request
-rw-r--r-- | changelog/unreleased/8289 | 5 | ||||
-rw-r--r-- | src/libsync/accessmanager.cpp | 3 | ||||
-rw-r--r-- | src/libsync/httplogger.cpp | 28 | ||||
-rw-r--r-- | src/libsync/httplogger.h | 3 |
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 |