From: Robin Appelman Date: Sat, 16 Jun 2012 23:26:30 +0000 (+0200) Subject: when checking if the content of a folder has been updated, exlicitly state that we... X-Git-Tag: v4.5.0beta1~74^2~414^2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b38e46276f247315772c5d46f0c73ea11a139cef;p=nextcloud-server.git 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 --- diff --git a/lib/filecache.php b/lib/filecache.php index 32c6929ff60..9963a5a3baf 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -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); diff --git a/lib/filecache/update.php b/lib/filecache/update.php index 9e23c6dfe7b..2e3eb67da08 100644 --- a/lib/filecache/update.php +++ b/lib/filecache/update.php @@ -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;