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);