HTTPSock: Gzip compression for static files (text/* mime types + files

with .js extension) and dynamic HTML responses (if gzip is available and
the compression method is supported by the requesting HTTP client).
This commit is contained in:
Ingmar Runge
2013-03-08 09:40:36 +01:00
parent ea5406f334
commit ea94795646
3 changed files with 184 additions and 14 deletions
+5
View File
@@ -11,6 +11,7 @@
#include <znc/zncconfig.h>
#include <znc/Socket.h>
#include <znc/FileUtils.h>
class CModule;
@@ -83,6 +84,9 @@ private:
static size_t GetParamValues(const CString& sName, VCString& vsRet, const std::map<CString, VCString>& msvsParams, const CString& sFilter);
static size_t GetParamValues(const CString& sName, std::set<CString>& ssRet, const std::map<CString, VCString>& msvsParams, const CString& sFilter);
void WriteFileUncompressed(CFile& File);
void WriteFileGzipped(CFile& File);
protected:
void PrintPage(const CString& sPage);
void Init();
@@ -104,6 +108,7 @@ protected:
MCString m_msHeaders;
bool m_bHTTP10Client;
CString m_sIfNoneMatch;
bool m_bAcceptGzip;
MCString m_msRequestCookies;
MCString m_msResponseCookies;
};