]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-90 PEAR/HTTP/WebDAV: fix file name encoding ... for real this time?
authormartinlanghoff <martinlanghoff>
Wed, 27 Feb 2008 03:01:56 +0000 (03:01 +0000)
committermartinlanghoff <martinlanghoff>
Wed, 27 Feb 2008 03:01:56 +0000 (03:01 +0000)
Cherry picked from upstream.

lib/pear/HTTP/WebDAV/Server.php

index e9266349f746bb8aa50e4caada1bdb65b0efb4d7..b6983dd4e2521c0b4262e4d27c406079aa4b59df 100755 (executable)
@@ -714,6 +714,9 @@ class HTTP_WebDAV_Server
              collections end in a slash, this should be done in here
              by checking the resource attribute */
             $href = $this->_mergePathes($this->_SERVER['SCRIPT_NAME'], $path);
+
+            /* minimal urlencoding is needed for the resource path */
+            $href = $this->_urlencode($href);
         
             echo "  <D:href>$href</D:href>\n";
         
@@ -2008,7 +2011,7 @@ class HTTP_WebDAV_Server
     /**
      * private minimalistic version of PHP urlencode()
      *
-     * only blanks and XML special chars must be encoded here
+     * only blanks, percent and XML special chars must be encoded here
      * full urlencode() encoding confuses some clients ...
      *
      * @param  string  URL to encode
@@ -2017,6 +2020,7 @@ class HTTP_WebDAV_Server
     function _urlencode($url) 
     {
         return strtr($url, array(" "=>"%20",
+                                 "%"=>"%25",
                                  "&"=>"%26",
                                  "<"=>"%3C",
                                  ">"=>"%3E",