From 7246b8308f5e9c914a63517fb84bae1b5d927163 Mon Sep 17 00:00:00 2001 From: Marco Hugentobler Date: Fri, 30 Jan 2015 15:51:59 +0100 Subject: [PATCH] Server: if map-parameter is missing in post parameters, check if it is passed as a get-parameter. Ported from Sourcepole QGIS Enterprise --- src/server/qgspostrequesthandler.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/server/qgspostrequesthandler.cpp b/src/server/qgspostrequesthandler.cpp index 38b50fe55af..3f44b4aa72b 100644 --- a/src/server/qgspostrequesthandler.cpp +++ b/src/server/qgspostrequesthandler.cpp @@ -33,6 +33,19 @@ void QgsPostRequestHandler::parseInput() QString inputString = readPostBody(); QgsDebugMsg( inputString ); + //Map parameter in QUERY_STRING? + const char* qs = getenv( "QUERY_STRING" ); + QMap getParameters; + QString queryString; + QString mapParameter; + if ( qs ) + { + queryString = QString( qs ); + requestStringToParameterMap( queryString, getParameters ); + mapParameter = getParameters.value( "MAP" ); + } + + QDomDocument doc; QString errorMsg; if ( !doc.setContent( inputString, true, &errorMsg ) ) @@ -64,4 +77,9 @@ void QgsPostRequestHandler::parseInput() mParameterMap.insert( "REQUEST", docElem.tagName() ); mParameterMap.insert( "REQUEST_BODY", inputString ); } + + if ( !mapParameter.isEmpty() && !mParameterMap.contains( "MAP" ) ) + { + mParameterMap.insert( "MAP", mapParameter ); + } }