Fix RestbaseVirtualRESTService URL standardization
authorGergő Tisza <gtisza@wikimedia.org>
Sat, 26 Aug 2017 00:32:15 +0000 (00:32 +0000)
committerGergő Tisza <gtisza@wikimedia.org>
Sat, 26 Aug 2017 00:32:15 +0000 (00:32 +0000)
The regex /?$ will add a second slash to URLs which already end
in a slash (since it will match both the trailing slash and the
empty position after it), which is enough to trip up HyperSwitch.

Change-Id: I675f8252a2496ace4d6c364a869776dff604df59

includes/libs/virtualrest/RestbaseVirtualRESTService.php

index 35c45de..90865ff 100644 (file)
@@ -61,11 +61,9 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
                        'fixedUrl' => false,
                ], $params );
                // Ensure that the url parameter has a trailing slash.
-               $mparams['url'] = preg_replace(
-                       '#/?$#',
-                       '/',
-                       $mparams['url']
-               );
+               if ( substr( $mparams['url'], -1 ) !== '/' ) {
+                       $mparams['url'] .= '/';
+               }
                // Ensure the correct domain format: strip protocol, port,
                // and trailing slash if present.  This lets us use
                // $wgCanonicalServer as a default value, which is very convenient.