From 64dd4c5985ceea4af2ada90b46f190efa801f3d7 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Mon, 22 Jan 2018 12:02:07 +0200 Subject: [PATCH] Remove Accept-Encoding header --- CMakeLists.txt | 8 +----- include/MatrixClient.h | 1 - src/MatrixClient.cc | 64 ------------------------------------------ 3 files changed, 1 insertion(+), 72 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9091a0b6..c894658c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,12 +60,6 @@ find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Concurrent REQUIRED) find_package(Qt5Multimedia REQUIRED) -find_package(ZLIB) - -if (ZLIB_FOUND) - include_directories(${ZLIB_INCLUDE_DIRS}) -endif() - if (APPLE) find_package(Qt5MacExtras REQUIRED) endif(APPLE) @@ -328,7 +322,7 @@ add_subdirectory(libs/matrix-structs) include_directories(${matrix_structs_SOURCE_DIR}/include) include_directories(${matrix_structs_SOURCE_DIR}/deps) -set(COMMON_LIBS matrix_structs Qt5::Widgets Qt5::Network Qt5::Concurrent ${ZLIB_LIBRARIES}) +set(COMMON_LIBS matrix_structs Qt5::Widgets Qt5::Network Qt5::Concurrent) if(APPVEYOR_BUILD) set(NHEKO_LIBS ${COMMON_LIBS} lmdb) diff --git a/include/MatrixClient.h b/include/MatrixClient.h index d3eebe49..7ae3fdf6 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h @@ -143,7 +143,6 @@ signals: private: QNetworkReply *makeUploadRequest(QSharedPointer iodev); - QByteArray uncompress(const QByteArray &data); // Client API prefix. QString clientApiUrl_; diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc index dd7c1c88..6701198a 100644 --- a/src/MatrixClient.cc +++ b/src/MatrixClient.cc @@ -254,7 +254,6 @@ MatrixClient::sync() noexcept endpoint.setQuery(query); QNetworkRequest request(QString(endpoint.toEncoded())); - request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate")); auto reply = get(request); connect(reply, &QNetworkReply::finished, this, [this, reply]() { @@ -269,9 +268,6 @@ MatrixClient::sync() noexcept auto data = reply->readAll(); - if (reply->hasRawHeader(QByteArray("Content-Encoding"))) - data = uncompress(data); - try { mtx::responses::Sync response = nlohmann::json::parse(data); emit syncCompleted(response); @@ -382,7 +378,6 @@ MatrixClient::initialSync() noexcept endpoint.setQuery(query); QNetworkRequest request(QString(endpoint.toEncoded())); - request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate")); auto reply = get(request); connect(reply, &QNetworkReply::finished, this, [this, reply]() { @@ -397,9 +392,6 @@ MatrixClient::initialSync() noexcept auto data = reply->readAll(); - if (reply->hasRawHeader(QByteArray("Content-Encoding"))) - data = uncompress(data); - try { mtx::responses::Sync response = nlohmann::json::parse(data); emit initialSyncCompleted(response); @@ -1235,59 +1227,3 @@ MatrixClient::makeUploadRequest(QSharedPointer iodev) return reply; } - -QByteArray -MatrixClient::uncompress(const QByteArray &data) -{ - /* - * https://stackoverflow.com/questions/2690328/qt-quncompress-gzip-data/7351507#7351507 - */ - - if (data.size() <= 4) { - qWarning("uncompress: Input data is truncated"); - return QByteArray(); - } - - QByteArray result; - - int ret; - z_stream strm; - static const int CHUNK_SIZE = 1024; - char out[CHUNK_SIZE]; - - /* allocate inflate state */ - strm.zalloc = Z_NULL; - strm.zfree = Z_NULL; - strm.opaque = Z_NULL; - strm.avail_in = data.size(); - strm.next_in = (Bytef *)(data.data()); - - ret = inflateInit2(&strm, 15 + 32); // gzip decoding - if (ret != Z_OK) - return QByteArray(); - - // run inflate() - do { - strm.avail_out = CHUNK_SIZE; - strm.next_out = (Bytef *)(out); - - ret = inflate(&strm, Z_NO_FLUSH); - Q_ASSERT(ret != Z_STREAM_ERROR); // state not clobbered - - switch (ret) { - case Z_NEED_DICT: - ret = Z_DATA_ERROR; - // fall through - case Z_DATA_ERROR: - case Z_MEM_ERROR: - (void)inflateEnd(&strm); - return QByteArray(); - } - - result.append(out, CHUNK_SIZE - strm.avail_out); - } while (strm.avail_out == 0); - - // clean up and return - inflateEnd(&strm); - return result; -}