Mercurial > hg > orthanc
diff Core/RestApi/RestApi.cpp @ 1515:c94353fbd4e9
cont http compression
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 10 Aug 2015 17:18:36 +0200 |
parents | d73a2178b319 |
children | 4f8c8ef114db |
line wrap: on
line diff
--- a/Core/RestApi/RestApi.cpp Mon Aug 10 16:43:59 2015 +0200 +++ b/Core/RestApi/RestApi.cpp Mon Aug 10 17:18:36 2015 +0200 @@ -194,30 +194,20 @@ } #endif - { - // Look if the client wishes HTTP compression - // https://en.wikipedia.org/wiki/HTTP_compression - Arguments::const_iterator it = headers.find("accept-encoding"); - if (it != headers.end()) - { - std::vector<std::string> encodings; - Toolbox::TokenizeString(encodings, it->second, ','); - for (size_t i = 0; i < encodings.size(); i++) - { - std::string s = Toolbox::StripSpaces(encodings[i]); + std::set<HttpCompression> compressions; + GetAcceptedCompressions(compressions, headers); - if (s == "deflate") - { - wrappedOutput.AllowDeflateCompression(true); - } - else if (s == "gzip") - { - wrappedOutput.AllowGzipCompression(true); - } - } - } + if (compressions.find(HttpCompression_Deflate) != compressions.end()) + { + wrappedOutput.AllowDeflateCompression(true); } + if (compressions.find(HttpCompression_Gzip) != compressions.end()) + { + wrappedOutput.AllowGzipCompression(true); + } + + Arguments compiled; HttpToolbox::CompileGetArguments(compiled, getArguments);