"- symlinkCache_resolve failed on other mounted dir (eg. from the filesystem stream-wrapper), as it removed the scheme

--> now done only for vfs scheme
- quitened readlink to not complain if backend does not support links"
This commit is contained in:
Ralf Becker 2009-03-31 08:43:12 +00:00
parent 1dbec93dc9
commit 637b6557fb

View File

@ -560,7 +560,7 @@ class vfs_stream_wrapper implements iface_stream_wrapper
*/ */
static function readlink($path) static function readlink($path)
{ {
return self::_call_on_backend('readlink',array($path)); return self::_call_on_backend('readlink',array($path),true); // true = fail silent, if backend does not support readlink
} }
/** /**
@ -858,7 +858,11 @@ class vfs_stream_wrapper implements iface_stream_wrapper
*/ */
static protected function symlinkCache_resolve($path,$do_symlink=true) static protected function symlinkCache_resolve($path,$do_symlink=true)
{ {
if ($path[0] != '/') $path = parse_url($path,PHP_URL_PATH); // remove vfs scheme, but no other schemes (eg. filesystem!)
if ($path[0] != '/' && parse_url($path,PHP_URL_SCHEME) == self::SCHEME)
{
$path = parse_url($path,PHP_URL_PATH);
}
$strlen_path = strlen($path); $strlen_path = strlen($path);
foreach(self::$symlink_cache as $p => $t) foreach(self::$symlink_cache as $p => $t)