]> source.dussan.org Git - nextcloud-server.git/commitdiff
allow to set a files mtime through a PROPPATCH request on resource
authorKlaas Freitag <freitag@owncloud.com>
Tue, 14 Feb 2012 08:59:54 +0000 (09:59 +0100)
committerKlaas Freitag <freitag@owncloud.com>
Tue, 14 Feb 2012 08:59:54 +0000 (09:59 +0100)
'lastmodified'. Needed for syncing algorithms.

lib/connector/sabre/node.php
lib/filestorage/local.php
lib/filesystem.php
lib/filesystemview.php

index b8b675c12031d7e1d4fc1116c34188f22953e976..41acb48dfb6d741006663ed510c0385bdabe8ee9 100644 (file)
@@ -97,12 +97,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
         *  in the second parameter or to now if the second param is empty.
         *  Even if the modification time is set to a custom value the access time is set to now.
         */
-       public function setLastModifiedTime($mtime) {
-               OC_Filesystem::setFileMtime($this->path, $mtime);
-       }
-
-       public function endsWith( $str, $sub ) {
-               return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub );
+       public function touch($mtime) {
+               OC_Filesystem::touch($this->path, $mtime);
        }
 
        /**
@@ -123,8 +119,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
                                }
                        }
                        else {
-                               if(  $this->endsWith( $propertyName, "modificationTime")) {
-                                       $this->setLastModifiedTime($propertyValue);
+                               if( strcmp( $propertyName, "lastmodified")) {
+                                       $this->touch($propertyValue);
                                } else {
                                        if(!array_key_exists( $propertyName, $existing )){
                                                $query = OC_DB::prepare( 'INSERT INTO *PREFIX*properties (userid,propertypath,propertyname,propertyvalue) VALUES(?,?,?,?)' );
index 292d2a84e7dfd6fa7704cbdeb447d09d53597c58..35db244e4d66b7ea6e4b4991a2be1f32ea6635d4 100644 (file)
@@ -65,13 +65,16 @@ class OC_Filestorage_Local extends OC_Filestorage{
        public function filemtime($path){
                return filemtime($this->datadir.$path);
        }
-       
-       public function setFileMtime($path, $mtime){
-                   // sets the modification time of the file to the given value. If mtime is nil the current time is set.
-                  // note that the access time of the file always changes to the current time.
-                  return touch($this->datadir.$path, $mtime);
-         }
-
+       public function touch($path, $mtime){
+               // sets the modification time of the file to the given value. 
+               // If mtime is nil the current time is set.
+               // note that the access time of the file always changes to the current time.
+               if( touch( $this->datadir.$path, $mtime ) ) {
+                       clearstatcache( true, $this->datadir.$path );
+               }
+               
+               return touch($this->datadir.$path, $mtime);
+       }
        public function file_get_contents($path){
                return file_get_contents($this->datadir.$path);
        }
index 75997c244ff2ebf323dc0ebc2f489120cd1edc51..90195bc2130e137de210fecb42c2bf037ec8f10a 100644 (file)
@@ -345,8 +345,8 @@ class OC_Filesystem{
        static public function filemtime($path){
                return self::$defaultInstance->filemtime($path);
        }
-       static public function setFileMtime($path, $mtime){
-               return self::$defaultInstance->setFileMtime($path, $mtime);
+       static public function touch($path, $mtime){
+               return self::$defaultInstance->touch($path, $mtime);
        }
        static public function file_get_contents($path){
                return self::$defaultInstance->file_get_contents($path);
index 0f1c546f4c56ee86b5ab645c825346191ceeb1ea..91c6cd17720babaf01420f8500d96a415c6d2a73 100644 (file)
@@ -156,8 +156,8 @@ class OC_FilesystemView {
        public function filemtime($path){
                return $this->basicOperation('filemtime',$path);
        }
-       public function setFileMtime($path, $mtime){
-               return $this->basicOperation('setFileMtime',$path, array('write'), $mtime);
+       public function touch($path, $mtime){
+               return $this->basicOperation('touch', $path, array('write'), $mtime);
        }
        public function file_get_contents($path){
                return $this->basicOperation('file_get_contents',$path,array('read'));