allow to set a files mtime through a PROPPATCH request on resource

'lastmodified'. Needed for syncing algorithms.
This commit is contained in:
Klaas Freitag 2012-02-14 09:59:54 +01:00
parent d10f4f071d
commit 60a03580ff
4 changed files with 18 additions and 19 deletions

View 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(?,?,?,?)' );

View 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);
}

View 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);

View 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'));