Fix filesystem hash, no longer using basicOperation()

Conflicts:
	lib/filesystemview.php
This commit is contained in:
Michael Gapczynski 2012-07-25 16:54:46 -04:00
parent 099b16350f
commit f328f53ec1
6 changed files with 27 additions and 8 deletions

View File

@ -456,7 +456,7 @@ class OC_Filestorage_Shared extends OC_Filestorage {
} }
} }
public function hash($type, $path, $raw) { public function hash($type, $path, $raw = false) {
$source = $this->getSource($path); $source = $this->getSource($path);
if ($source) { if ($source) {
$storage = OC_Filesystem::getStorage($source); $storage = OC_Filesystem::getStorage($source);

View File

@ -45,7 +45,7 @@ abstract class OC_Filestorage{
abstract public function copy($path1,$path2); abstract public function copy($path1,$path2);
abstract public function fopen($path,$mode); abstract public function fopen($path,$mode);
abstract public function getMimeType($path); abstract public function getMimeType($path);
abstract public function hash($type,$path,$raw); abstract public function hash($type,$path,$raw = false);
abstract public function free_space($path); abstract public function free_space($path);
abstract public function search($query); abstract public function search($query);
abstract public function touch($path, $mtime=null); abstract public function touch($path, $mtime=null);

View File

@ -110,7 +110,7 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
unlink($tmpFile); unlink($tmpFile);
return $mime; return $mime;
} }
public function hash($type,$path,$raw){ public function hash($type,$path,$raw = false){
$tmpFile=$this->getLocalFile(); $tmpFile=$this->getLocalFile();
$hash=hash($type,$tmpFile,$raw); $hash=hash($type,$tmpFile,$raw);
unlink($tmpFile); unlink($tmpFile);

View File

@ -157,7 +157,7 @@ class OC_Filestorage_Local extends OC_Filestorage{
return $return; return $return;
} }
public function hash($type,$path,$raw){ public function hash($type,$path,$raw = false){
return hash_file($type,$this->datadir.$path,$raw); return hash_file($type,$this->datadir.$path,$raw);
} }

View File

@ -458,8 +458,8 @@ class OC_Filesystem{
static public function getMimeType($path){ static public function getMimeType($path){
return self::$defaultInstance->getMimeType($path); return self::$defaultInstance->getMimeType($path);
} }
static public function hash($type,$path){ static public function hash($type,$path, $raw = false){
return self::$defaultInstance->hash($type,$path); return self::$defaultInstance->hash($type,$path, $raw);
} }
static public function free_space($path='/'){ static public function free_space($path='/'){

View File

@ -366,8 +366,27 @@ class OC_FilesystemView {
public function getMimeType($path){ public function getMimeType($path){
return $this->basicOperation('getMimeType',$path); return $this->basicOperation('getMimeType',$path);
} }
public function hash($type,$path){ public function hash($type, $path, $raw = false) {
return $this->basicOperation('hash',$path,array('read')); $absolutePath = $this->getAbsolutePath($path);
if (OC_FileProxy::runPreProxies('hash', $absolutePath) && OC_Filesystem::isValidPath($path)) {
$path = $this->getRelativePath($absolutePath);
if ($path == null) {
return false;
}
if (OC_Filesystem::$loaded && $this->fakeRoot == OC_Filesystem::getRoot()) {
OC_Hook::emit(
OC_Filesystem::CLASSNAME,
OC_Filesystem::signal_read,
array( OC_Filesystem::signal_param_path => $path)
);
}
if ($storage = $this->getStorage($path)) {
$result = $storage->hash($type, $this->getInternalPath($path), $raw);
$result = OC_FileProxy::runPostProxies('hash', $absolutePath, $result);
return $result;
}
}
return null;
} }
public function free_space($path='/'){ public function free_space($path='/'){