]> source.dussan.org Git - nextcloud-server.git/commitdiff
added self healing if file get remove from file cache
authorFlorin Peter <github@florin-peter.de>
Sat, 27 Apr 2013 21:02:42 +0000 (23:02 +0200)
committerFlorin Peter <github@florin-peter.de>
Sat, 27 Apr 2013 21:02:42 +0000 (23:02 +0200)
apps/files_encryption/lib/proxy.php

index 439aa0da25104b265a1acf695d7d8b6eb8478683..23290b5b20bc6255ecc1fc4ecede81714aefd419 100644 (file)
@@ -438,10 +438,24 @@ class Proxy extends \OC_FileProxy {
 
         // if file is encrypted return real file size
         if (is_array($fileInfo) && $fileInfo['encrypted'] == 1) {
-            return $fileInfo['unencrypted_size'];
+            $size = $fileInfo['unencrypted_size'];
         } else {
-            return $size;
+            // self healing if file was removed from file cache
+            $userId = \OCP\User::getUser();
+            $util = new Util( $view, $userId );
+            $fixSize = $util->getFileSize($path);
+            if($fixSize > 0) {
+                $size = $fixSize;
+
+                $fileInfo['encrypted'] = 1;
+                $fileInfo['unencrypted_size'] = $size;
+
+                // put file info
+                $view->putFileInfo( $path, $fileInfo );
+            }
         }
+
+        return $size;
     }
 
     public function handleFile($path) {