From b38e46276f247315772c5d46f0c73ea11a139cef Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Sun, 17 Jun 2012 01:26:30 +0200
Subject: [PATCH] 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
---
 lib/filecache.php        | 2 +-
 lib/filecache/update.php | 9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/filecache.php b/lib/filecache.php
index 32c6929ff6..9963a5a3ba 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 9e23c6dfe7..2e3eb67da0 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;
-- 
GitLab