Remove Accept-Encoding header

This commit is contained in:
Konstantinos Sideris 2018-01-22 12:02:07 +02:00
parent c59cd0e80b
commit 64dd4c5985
3 changed files with 1 additions and 72 deletions

View file

@ -60,12 +60,6 @@ find_package(Qt5LinguistTools REQUIRED)
find_package(Qt5Concurrent REQUIRED) find_package(Qt5Concurrent REQUIRED)
find_package(Qt5Multimedia REQUIRED) find_package(Qt5Multimedia REQUIRED)
find_package(ZLIB)
if (ZLIB_FOUND)
include_directories(${ZLIB_INCLUDE_DIRS})
endif()
if (APPLE) if (APPLE)
find_package(Qt5MacExtras REQUIRED) find_package(Qt5MacExtras REQUIRED)
endif(APPLE) endif(APPLE)
@ -328,7 +322,7 @@ add_subdirectory(libs/matrix-structs)
include_directories(${matrix_structs_SOURCE_DIR}/include) include_directories(${matrix_structs_SOURCE_DIR}/include)
include_directories(${matrix_structs_SOURCE_DIR}/deps) 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) if(APPVEYOR_BUILD)
set(NHEKO_LIBS ${COMMON_LIBS} lmdb) set(NHEKO_LIBS ${COMMON_LIBS} lmdb)

View file

@ -143,7 +143,6 @@ signals:
private: private:
QNetworkReply *makeUploadRequest(QSharedPointer<QIODevice> iodev); QNetworkReply *makeUploadRequest(QSharedPointer<QIODevice> iodev);
QByteArray uncompress(const QByteArray &data);
// Client API prefix. // Client API prefix.
QString clientApiUrl_; QString clientApiUrl_;

View file

@ -254,7 +254,6 @@ MatrixClient::sync() noexcept
endpoint.setQuery(query); endpoint.setQuery(query);
QNetworkRequest request(QString(endpoint.toEncoded())); QNetworkRequest request(QString(endpoint.toEncoded()));
request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate"));
auto reply = get(request); auto reply = get(request);
connect(reply, &QNetworkReply::finished, this, [this, reply]() { connect(reply, &QNetworkReply::finished, this, [this, reply]() {
@ -269,9 +268,6 @@ MatrixClient::sync() noexcept
auto data = reply->readAll(); auto data = reply->readAll();
if (reply->hasRawHeader(QByteArray("Content-Encoding")))
data = uncompress(data);
try { try {
mtx::responses::Sync response = nlohmann::json::parse(data); mtx::responses::Sync response = nlohmann::json::parse(data);
emit syncCompleted(response); emit syncCompleted(response);
@ -382,7 +378,6 @@ MatrixClient::initialSync() noexcept
endpoint.setQuery(query); endpoint.setQuery(query);
QNetworkRequest request(QString(endpoint.toEncoded())); QNetworkRequest request(QString(endpoint.toEncoded()));
request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate"));
auto reply = get(request); auto reply = get(request);
connect(reply, &QNetworkReply::finished, this, [this, reply]() { connect(reply, &QNetworkReply::finished, this, [this, reply]() {
@ -397,9 +392,6 @@ MatrixClient::initialSync() noexcept
auto data = reply->readAll(); auto data = reply->readAll();
if (reply->hasRawHeader(QByteArray("Content-Encoding")))
data = uncompress(data);
try { try {
mtx::responses::Sync response = nlohmann::json::parse(data); mtx::responses::Sync response = nlohmann::json::parse(data);
emit initialSyncCompleted(response); emit initialSyncCompleted(response);
@ -1235,59 +1227,3 @@ MatrixClient::makeUploadRequest(QSharedPointer<QIODevice> iodev)
return reply; 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;
}