when checking if the content of a folder has been updated, exlicitly state that we are checking a folder

solves some issues with external storages not updating correctly
This commit is contained in:
Robin Appelman 2012-06-17 01:26:30 +02:00
parent 6f93176a4b
commit b38e46276f
2 changed files with 8 additions and 3 deletions

View File

@ -217,7 +217,7 @@ class OC_FileCache{
* - versioned
*/
public static function getFolderContent($path,$root=false,$mimetype_filter=''){
if(OC_FileCache_Update::hasUpdated($path,$root)){
if(OC_FileCache_Update::hasUpdated($path,$root,true)){
OC_FileCache_Update::updateFolder($path,$root);
}
return OC_FileCache_Cached::getFolderContent($path,$root,$mimetype_filter);

View File

@ -15,9 +15,10 @@ class OC_FileCache_Update{
* check if a file or folder is updated outside owncloud
* @param string path
* @param string root (optional)
* @param boolean folder
* @return bool
*/
public static function hasUpdated($path,$root=false){
public static function hasUpdated($path,$root=false,$folder=false){
if($root===false){
$view=OC_Filesystem::getView();
}else{
@ -29,7 +30,11 @@ class OC_FileCache_Update{
$cachedData=OC_FileCache_Cached::get($path,$root);
if(isset($cachedData['mtime'])){
$cachedMTime=$cachedData['mtime'];
return $view->hasUpdated($path,$cachedMTime);
if($folder){
return $view->hasUpdated($path.'/',$cachedMTime);
}else{
return $view->hasUpdated($path,$cachedMTime);
}
}else{//file not in cache, so it has to be updated
if(($path=='/' or $path=='') and $root===false){//dont auto update the home folder, it will be scanned
return false;