瀏覽代碼

Merge pull request #2014 from afishbeck/raw_xml

gh-1684 Redirection intended for eclwatch messing up requests for xml

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 13 年之前
父節點
當前提交
a3e02eea83
共有 2 個文件被更改,包括 6 次插入2 次删除
  1. 4 0
      esp/bindings/http/platform/httptransport.ipp
  2. 2 2
      tools/hidl/hidlcomp.cpp

+ 4 - 0
esp/bindings/http/platform/httptransport.ipp

@@ -407,5 +407,9 @@ public:
     void setTimeOut(unsigned int timeout);
 };
 
+inline bool canRedirect(CHttpRequest &req)
+{
+    return !req.queryParameters()->hasProp("rawxml_");
+}
 
 #endif

+ 2 - 2
tools/hidl/hidlcomp.cpp

@@ -6076,7 +6076,7 @@ void EspServInfo::write_esp_binding()
             }
             
             
-            outs("\t\t\tif (esp_response->getRedirectUrl() && *esp_response->getRedirectUrl())\n");
+            outs("\t\t\tif (canRedirect(*request) && esp_response->getRedirectUrl() && *esp_response->getRedirectUrl())\n");
             outs("\t\t\t{\n");
             outs("\t\t\t\tresponse->redirect(*request, esp_response->getRedirectUrl());\n");
             outs("\t\t\t}\n");
@@ -6143,7 +6143,7 @@ void EspServInfo::write_esp_binding()
     indentReset(2);
     indentOuts("if (esp_response.get())\n");
     indentOuts("{\n");
-    indentOuts(1,"if (esp_response->getRedirectUrl() && *esp_response->getRedirectUrl())\n");
+    indentOuts(1,"if (canRedirect(*request) && esp_response->getRedirectUrl() && *esp_response->getRedirectUrl())\n");
     indentOuts(1,"response->redirect(*request, esp_response->getRedirectUrl());\n");
     indentOuts(-1,"else\n");
     indentOuts("{\n");