Skip to content

Commit c769cdd

Browse files
committed
A neater fix for missing map parameter as suggested by Juergen
1 parent 6509df2 commit c769cdd

File tree

1 file changed

+6
-27
lines changed

1 file changed

+6
-27
lines changed

src/mapserver/qgswmsserver.cpp

+6-27
Original file line numberDiff line numberDiff line change
@@ -106,33 +106,12 @@ QDomDocument QgsWMSServer::getCapabilities()
106106
//Some client requests already have http://<SERVER_NAME> in the REQUEST_URI variable
107107
QString hrefString;
108108
QString requestUrl = getenv( "REQUEST_URI" );
109-
QString mapUrl = requestUrl;
110-
requestUrl.truncate( requestUrl.indexOf( "?" ) + 1 );
111-
112-
// find out if a map parameter was specified and ensure
113-
// it is propogated to the onlineresource
114-
mapUrl.replace( requestUrl, "" );
115-
QStringList myTokens = mapUrl.split( "&" );
116-
QString myMap = "";
117-
QStringListIterator myIterator( myTokens );
118-
while ( myIterator.hasNext() )
119-
{
120-
QString myString = myIterator.next();
121-
if ( myString.contains( "map=", Qt::CaseInsensitive ) )
122-
{
123-
myMap = myString;
124-
}
125-
}
126-
127-
128-
if ( requestUrl.contains( "http" ) )
129-
{
130-
hrefString = requestUrl;
131-
}
132-
else
133-
{
134-
hrefString = "http://" + QString( getenv( "SERVER_NAME" ) ) + requestUrl + myMap;
135-
}
109+
QUrl mapUrl( requestUrl );
110+
mapUrl.setHost( QString( getenv( "SERVER_NAME" ) ) );
111+
mapUrl.removeQueryItem( "REQUEST" );
112+
mapUrl.removeQueryItem( "VERSION" );
113+
mapUrl.removeQueryItem( "SERVICE" );
114+
hrefString = mapUrl.toString();
136115

137116

138117
// SOAP platform

0 commit comments

Comments
 (0)