diff Core/HttpServer/MongooseServer.cpp @ 1363:feaf2840917c

Plugins now receive duplicated GET arguments in their REST callbacks
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 May 2015 15:21:26 +0200
parents 6e7e5ed91c2d
children ad94a3583b07
line wrap: on
line diff
--- a/Core/HttpServer/MongooseServer.cpp	Fri May 15 17:33:43 2015 +0200
+++ b/Core/HttpServer/MongooseServer.cpp	Wed May 20 15:21:26 2015 +0200
@@ -466,7 +466,7 @@
   static bool ExtractMethod(HttpMethod& method,
                             const struct mg_request_info *request,
                             const HttpHandler::Arguments& headers,
-                            const HttpHandler::Arguments& argumentsGET)
+                            const HttpHandler::GetArguments& argumentsGET)
   {
     std::string overriden;
 
@@ -484,10 +484,13 @@
     {
       // 2. Faking with Ruby on Rail's approach
       // GET /my/resource?_method=delete <=> DELETE /my/resource
-      methodOverride = argumentsGET.find("_method");
-      if (methodOverride != argumentsGET.end())
+      for (size_t i = 0; i < argumentsGET.size(); i++)
       {
-        overriden = methodOverride->second;
+        if (argumentsGET[i].first == "_method")
+        {
+          overriden = argumentsGET[i].second;
+          break;
+        }
       }
     }
 
@@ -567,7 +570,7 @@
 
 
     // Extract the GET arguments
-    HttpHandler::Arguments argumentsGET;
+    HttpHandler::GetArguments argumentsGET;
     if (!strcmp(request->request_method, "GET"))
     {
       HttpHandler::ParseGetArguments(argumentsGET, request->query_string);