From 03b31d113ea316c8384a4cbf3d27ca22bb528eac Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Sat, 28 Jun 2014 22:28:08 +0200 Subject: Update SabreDAV from 1.8.9 to 1.8.10. --- .../lib/Sabre/DAV/Auth/Backend/AbstractBasic.php | 2 +- .../lib/Sabre/DAV/Auth/Backend/AbstractDigest.php | 2 +- .../dav/lib/Sabre/DAV/Auth/Backend/Apache.php | 2 +- .../Sabre/DAV/Auth/Backend/BackendInterface.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Auth/Backend/File.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Auth/Backend/PDO.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Auth/Plugin.php | 2 +- .../dav/lib/Sabre/DAV/Browser/GuessContentType.php | 2 +- .../dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Browser/Plugin.php | 4 +- vendor/sabre/dav/lib/Sabre/DAV/Client.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Collection.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Exception.php | 2 +- .../dav/lib/Sabre/DAV/Exception/BadRequest.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Exception/Conflict.php | 2 +- .../lib/Sabre/DAV/Exception/ConflictingLock.php | 2 +- .../dav/lib/Sabre/DAV/Exception/FileNotFound.php | 2 +- .../dav/lib/Sabre/DAV/Exception/Forbidden.php | 2 +- .../Sabre/DAV/Exception/InsufficientStorage.php | 2 +- .../Sabre/DAV/Exception/InvalidResourceType.php | 2 +- .../dav/lib/Sabre/DAV/Exception/LengthRequired.php | 30 ++++++ .../DAV/Exception/LockTokenMatchesRequestUri.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Exception/Locked.php | 2 +- .../lib/Sabre/DAV/Exception/MethodNotAllowed.php | 2 +- .../lib/Sabre/DAV/Exception/NotAuthenticated.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Exception/NotFound.php | 2 +- .../dav/lib/Sabre/DAV/Exception/NotImplemented.php | 2 +- .../lib/Sabre/DAV/Exception/PaymentRequired.php | 2 +- .../lib/Sabre/DAV/Exception/PreconditionFailed.php | 2 +- .../lib/Sabre/DAV/Exception/ReportNotSupported.php | 2 +- .../DAV/Exception/RequestedRangeNotSatisfiable.php | 2 +- .../lib/Sabre/DAV/Exception/ServiceUnavailable.php | 2 +- .../Sabre/DAV/Exception/UnsupportedMediaType.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/FS/Directory.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/FS/File.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/FS/Node.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/FSExt/Directory.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/FSExt/File.php | 52 +++++++--- vendor/sabre/dav/lib/Sabre/DAV/FSExt/Node.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/File.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/ICollection.php | 2 +- .../dav/lib/Sabre/DAV/IExtendedCollection.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/IFile.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/INode.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/IProperties.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/IQuota.php | 2 +- .../Sabre/DAV/Locks/Backend/AbstractBackend.php | 2 +- .../Sabre/DAV/Locks/Backend/BackendInterface.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Locks/Backend/FS.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Locks/Backend/File.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Locks/Backend/PDO.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Locks/LockInfo.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Locks/Plugin.php | 4 +- vendor/sabre/dav/lib/Sabre/DAV/Mount/Plugin.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Node.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php | 2 +- .../dav/lib/Sabre/DAV/PartialUpdate/IFile.php | 7 +- .../lib/Sabre/DAV/PartialUpdate/IPatchSupport.php | 48 +++++++++ .../dav/lib/Sabre/DAV/PartialUpdate/Plugin.php | 114 +++++++++++++-------- vendor/sabre/dav/lib/Sabre/DAV/Property.php | 2 +- .../dav/lib/Sabre/DAV/Property/GetLastModified.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Property/Href.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Property/HrefList.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Property/IHref.php | 2 +- .../dav/lib/Sabre/DAV/Property/LockDiscovery.php | 2 +- .../dav/lib/Sabre/DAV/Property/ResourceType.php | 2 +- .../sabre/dav/lib/Sabre/DAV/Property/Response.php | 2 +- .../dav/lib/Sabre/DAV/Property/ResponseList.php | 2 +- .../dav/lib/Sabre/DAV/Property/SupportedLock.php | 2 +- .../lib/Sabre/DAV/Property/SupportedReportSet.php | 2 +- .../sabre/dav/lib/Sabre/DAV/PropertyInterface.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Server.php | 11 +- vendor/sabre/dav/lib/Sabre/DAV/ServerPlugin.php | 2 +- .../sabre/dav/lib/Sabre/DAV/SimpleCollection.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/SimpleFile.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/StringUtil.php | 2 +- .../lib/Sabre/DAV/TemporaryFileFilterPlugin.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Tree.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Tree/Filesystem.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/URLUtil.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/UUIDUtil.php | 2 +- vendor/sabre/dav/lib/Sabre/DAV/Version.php | 4 +- vendor/sabre/dav/lib/Sabre/DAV/XMLUtil.php | 4 +- 83 files changed, 283 insertions(+), 141 deletions(-) create mode 100644 vendor/sabre/dav/lib/Sabre/DAV/Exception/LengthRequired.php create mode 100644 vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IPatchSupport.php (limited to 'vendor/sabre/dav/lib/Sabre/DAV') diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractBasic.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractBasic.php index 5ea6f6c7c..599f932d4 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractBasic.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractBasic.php @@ -15,7 +15,7 @@ use Sabre\HTTP; * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author James David Low (http://jameslow.com/) * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class AbstractBasic implements BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractDigest.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractDigest.php index e140f7b3a..dc00438c9 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractDigest.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/AbstractDigest.php @@ -14,7 +14,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class AbstractDigest implements BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/Apache.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/Apache.php index 308f5eff2..66fdd91e1 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/Apache.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/Apache.php @@ -13,7 +13,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Apache implements BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/BackendInterface.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/BackendInterface.php index 36e472002..b8d04e2e1 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/BackendInterface.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/BackendInterface.php @@ -7,7 +7,7 @@ namespace Sabre\DAV\Auth\Backend; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/File.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/File.php index c7c1047a5..a8e913614 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/File.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/File.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class File extends AbstractDigest { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/PDO.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/PDO.php index a5fb5f18c..f153d8429 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/PDO.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Backend/PDO.php @@ -9,7 +9,7 @@ namespace Sabre\DAV\Auth\Backend; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class PDO extends AbstractDigest { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Plugin.php b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Plugin.php index 95c669e4a..dbebc20f0 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Auth/Plugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Auth/Plugin.php @@ -14,7 +14,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Plugin extends DAV\ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Browser/GuessContentType.php b/vendor/sabre/dav/lib/Sabre/DAV/Browser/GuessContentType.php index 41ec4bb8b..9fd47b930 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Browser/GuessContentType.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Browser/GuessContentType.php @@ -17,7 +17,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class GuessContentType extends DAV\ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php b/vendor/sabre/dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php index ff8452c57..881c063b9 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class MapGetToPropFind extends DAV\ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Browser/Plugin.php b/vendor/sabre/dav/lib/Sabre/DAV/Browser/Plugin.php index 0e54f706f..751c22965 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Browser/Plugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Browser/Plugin.php @@ -15,7 +15,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Plugin extends DAV\ServerPlugin { @@ -374,7 +374,7 @@ class Plugin extends DAV\ServerPlugin { $html.=$output; $html.= " -
Generated by SabreDAV " . $version . " (c)2007-2014 http://code.google.com/p/sabredav/
+
Generated by SabreDAV " . $version . " (c)2007-2014 http://sabre.io/
"; diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Client.php b/vendor/sabre/dav/lib/Sabre/DAV/Client.php index 1cec8ff6f..705b32195 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Client.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Client.php @@ -12,7 +12,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Client { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Collection.php b/vendor/sabre/dav/lib/Sabre/DAV/Collection.php index 9564dd462..0090a4d6e 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Collection.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Collection.php @@ -10,7 +10,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Collection extends Node implements ICollection { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception.php index 3f99fc4dd..22a319e9f 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception.php @@ -7,7 +7,7 @@ * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ namespace Sabre\DAV; diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/BadRequest.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/BadRequest.php index 2fcd4c04d..d59727e3a 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/BadRequest.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/BadRequest.php @@ -10,7 +10,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class BadRequest extends \Sabre\DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/Conflict.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/Conflict.php index b15ca37cc..cbb8fcf1a 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/Conflict.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/Conflict.php @@ -10,7 +10,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Conflict extends \Sabre\DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/ConflictingLock.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/ConflictingLock.php index 33cdf50d8..715870f46 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/ConflictingLock.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/ConflictingLock.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class ConflictingLock extends Locked { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/FileNotFound.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/FileNotFound.php index 6743d1d04..aa4844cb9 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/FileNotFound.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/FileNotFound.php @@ -11,7 +11,7 @@ namespace Sabre\DAV\Exception; * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) * @deprecated Use Sabre\DAV\Exception\NotFound instead - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class FileNotFound extends NotFound { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/Forbidden.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/Forbidden.php index 6fb5004d7..2dc620612 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/Forbidden.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/Forbidden.php @@ -9,7 +9,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Forbidden extends \Sabre\DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/InsufficientStorage.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/InsufficientStorage.php index 90aa6abb2..f7e382c5a 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/InsufficientStorage.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/InsufficientStorage.php @@ -9,7 +9,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class InsufficientStorage extends \Sabre\DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/InvalidResourceType.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/InvalidResourceType.php index 16162e08f..847ed4786 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/InvalidResourceType.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/InvalidResourceType.php @@ -12,7 +12,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class InvalidResourceType extends Forbidden { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/LengthRequired.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/LengthRequired.php new file mode 100644 index 000000000..9487686dc --- /dev/null +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/LengthRequired.php @@ -0,0 +1,30 @@ + * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class ServiceUnavailable extends DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Exception/UnsupportedMediaType.php b/vendor/sabre/dav/lib/Sabre/DAV/Exception/UnsupportedMediaType.php index 293c9b7b9..46eea60df 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Exception/UnsupportedMediaType.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Exception/UnsupportedMediaType.php @@ -10,7 +10,7 @@ namespace Sabre\DAV\Exception; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class UnsupportedMediaType extends \Sabre\DAV\Exception { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FS/Directory.php b/vendor/sabre/dav/lib/Sabre/DAV/FS/Directory.php index 8a6d1f038..6fdd2aecf 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FS/Directory.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FS/Directory.php @@ -8,7 +8,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Directory extends Node implements DAV\ICollection, DAV\IQuota { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FS/File.php b/vendor/sabre/dav/lib/Sabre/DAV/FS/File.php index b15883555..d10370fae 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FS/File.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FS/File.php @@ -9,7 +9,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class File extends Node implements DAV\IFile { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FS/Node.php b/vendor/sabre/dav/lib/Sabre/DAV/FS/Node.php index dc31bdfe9..605fa3c82 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FS/Node.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FS/Node.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Node implements DAV\INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Directory.php b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Directory.php index e547b368a..da3d2cc69 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Directory.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Directory.php @@ -9,7 +9,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Directory extends Node implements DAV\ICollection, DAV\IQuota { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/File.php b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/File.php index e895d9140..6588fad7e 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/File.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/File.php @@ -8,9 +8,9 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ -class File extends Node implements DAV\PartialUpdate\IFile { +class File extends Node implements DAV\PartialUpdate\IPatchSupport { /** * Updates the data @@ -28,19 +28,47 @@ class File extends Node implements DAV\PartialUpdate\IFile { } /** - * Updates the data at a given offset + * Updates the file based on a range specification. * - * The data argument is a readable stream resource. - * The offset argument is a 0-based offset where the data should be - * written. + * The first argument is the data, which is either a readable stream + * resource or a string. * - * param resource|string $data - * @return void + * The second argument is the type of update we're doing. + * This is either: + * * 1. append + * * 2. update based on a start byte + * * 3. update based on an end byte + *; + * The third argument is the start or end byte. + * + * After a successful put operation, you may choose to return an ETag. The + * etag must always be surrounded by double-quotes. These quotes must + * appear in the actual string you're returning. + * + * Clients may use the ETag from a PUT request to later on make sure that + * when they update the file, the contents haven't changed in the mean + * time. + * + * @param resource|string $data + * @param int $rangeType + * @param int $offset + * @return string|null */ - public function putRange($data, $offset) { - - $f = fopen($this->path, 'c'); - fseek($f,$offset-1); + public function patch($data, $rangeType, $offset = null) { + + switch($rangeType) { + case 1 : + $f = fopen($this->path, 'a'); + break; + case 2 : + $f = fopen($this->path, 'c'); + fseek($f,$offset); + break; + case 3 : + $f = fopen($this->path, 'c'); + fseek($f, $offset, SEEK_END); + break; + } if (is_string($data)) { fwrite($f, $data); } else { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Node.php b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Node.php index 285ab496a..0e11582f3 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Node.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/FSExt/Node.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Node extends DAV\FS\Node implements DAV\IProperties { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/File.php b/vendor/sabre/dav/lib/Sabre/DAV/File.php index 4ab25530d..af8ce735f 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/File.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/File.php @@ -10,7 +10,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class File extends Node implements IFile { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/ICollection.php b/vendor/sabre/dav/lib/Sabre/DAV/ICollection.php index 2c4d95456..c38d5e553 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/ICollection.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/ICollection.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface ICollection extends INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/IExtendedCollection.php b/vendor/sabre/dav/lib/Sabre/DAV/IExtendedCollection.php index 45ab8630f..8d3748467 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/IExtendedCollection.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/IExtendedCollection.php @@ -10,7 +10,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface IExtendedCollection extends ICollection { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/IFile.php b/vendor/sabre/dav/lib/Sabre/DAV/IFile.php index 1df454db2..6245d3fad 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/IFile.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/IFile.php @@ -11,7 +11,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface IFile extends INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/INode.php b/vendor/sabre/dav/lib/Sabre/DAV/INode.php index f59dca754..e183c84be 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/INode.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/INode.php @@ -7,7 +7,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/IProperties.php b/vendor/sabre/dav/lib/Sabre/DAV/IProperties.php index 7f0d8b259..f3601575b 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/IProperties.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/IProperties.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface IProperties extends INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/IQuota.php b/vendor/sabre/dav/lib/Sabre/DAV/IQuota.php index 60fedb5a5..988df3d06 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/IQuota.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/IQuota.php @@ -11,7 +11,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface IQuota extends ICollection { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/AbstractBackend.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/AbstractBackend.php index fa13f462c..b2c7b983a 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/AbstractBackend.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/AbstractBackend.php @@ -13,7 +13,7 @@ use Sabre\DAV\Locks; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class AbstractBackend implements BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/BackendInterface.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/BackendInterface.php index 7bd7d572d..bae666b2f 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/BackendInterface.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/BackendInterface.php @@ -10,7 +10,7 @@ use Sabre\DAV\Locks; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface BackendInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/FS.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/FS.php index 971db9740..a9b0aaaaf 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/FS.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/FS.php @@ -19,7 +19,7 @@ use Sabre\DAV\Locks\LockInfo; * @deprecated * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class FS extends AbstractBackend { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/File.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/File.php index c62e1d465..9ac7e06b2 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/File.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/File.php @@ -14,7 +14,7 @@ use Sabre\DAV\Locks\LockInfo; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class File extends AbstractBackend { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/PDO.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/PDO.php index 3617daafc..ebaeef860 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/PDO.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Backend/PDO.php @@ -12,7 +12,7 @@ use Sabre\DAV\Locks\LockInfo; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class PDO extends AbstractBackend { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/LockInfo.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/LockInfo.php index d3588ac10..74bdb0f9c 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/LockInfo.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/LockInfo.php @@ -10,7 +10,7 @@ namespace Sabre\DAV\Locks; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class LockInfo { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Plugin.php b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Plugin.php index 34e1b53f9..001f8175d 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Locks/Plugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Locks/Plugin.php @@ -16,7 +16,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Plugin extends DAV\ServerPlugin { @@ -503,7 +503,7 @@ class Plugin extends DAV\ServerPlugin { $uri = $conditionUri?$conditionUri:$this->server->getRequestUri(); $node = $this->server->tree->getNodeForPath($uri); - $etagValid = $node->getETag()==$conditionToken[2]; + $etagValid = $node instanceof DAV\IFile && $node->getETag()==$conditionToken[2]; } diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Mount/Plugin.php b/vendor/sabre/dav/lib/Sabre/DAV/Mount/Plugin.php index 23f7f31e2..8376b03b0 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Mount/Plugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Mount/Plugin.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Plugin extends DAV\ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Node.php b/vendor/sabre/dav/lib/Sabre/DAV/Node.php index 3619ac250..44e47be68 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Node.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Node.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Node implements INode { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php b/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php index 5bdfdffe6..3e7c0fcf8 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class ObjectTree extends Tree { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IFile.php b/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IFile.php index 69c41b008..9cfb47377 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IFile.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IFile.php @@ -5,13 +5,12 @@ namespace Sabre\DAV\PartialUpdate; use Sabre\DAV; /** - * This interface provides a way to modify only part of a target resource - * It may be used to update a file chunk, upload big a file into smaller - * chunks or resume an upload + * This interface is deprecated. Use IPatchSupport instead. * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Jean-Tiare LE BIGOT (http://www.jtlebi.fr/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License + * @deprecated */ interface IFile extends DAV\IFile { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IPatchSupport.php b/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IPatchSupport.php new file mode 100644 index 000000000..aff1d320f --- /dev/null +++ b/vendor/sabre/dav/lib/Sabre/DAV/PartialUpdate/IPatchSupport.php @@ -0,0 +1,48 @@ +httpPatch($uri); @@ -83,7 +87,7 @@ class Plugin extends DAV\ServerPlugin { * * This method is passed a uri. It should only return HTTP methods that are * available for the specified uri. - * + * * We claim to support PATCH method (partial update) if and only if * - the node exist * - the node implements our partial update interface @@ -92,15 +96,15 @@ class Plugin extends DAV\ServerPlugin { * @return array */ public function getHTTPMethods($uri) { - + $tree = $this->server->tree; - - if ($tree->nodeExists($uri) && - $tree->getNodeForPath($uri) instanceof IFile) { - return array('PATCH'); - } - - return array(); + if ($tree->nodeExists($uri)) { + $node = $tree->getNodeForPath($uri); + if ($node instanceof IFile || $node instanceof IPatchSupport) { + return array('PATCH'); + } + } + return array(); } @@ -118,7 +122,7 @@ class Plugin extends DAV\ServerPlugin { /** * Patch an uri * - * The WebDAV patch request can be used to modify only a part of an + * The WebDAV patch request can be used to modify only a part of an * existing resource. If the resource does not exist yet and the first * offset is not 0, the request fails * @@ -129,7 +133,7 @@ class Plugin extends DAV\ServerPlugin { // Get the node. Will throw a 404 if not found $node = $this->server->tree->getNodeForPath($uri); - if (!($node instanceof IFile)) { + if (!$node instanceof IFile && !$node instanceof IPatchSupport) { throw new DAV\Exception\MethodNotAllowed('The target resource does not support the PATCH method.'); } @@ -138,27 +142,33 @@ class Plugin extends DAV\ServerPlugin { if (!$range) { throw new DAV\Exception\BadRequest('No valid "X-Update-Range" found in the headers'); } - + $contentType = strtolower( $this->server->httpRequest->getHeader('Content-Type') ); - + if ($contentType != 'application/x-sabredav-partialupdate') { throw new DAV\Exception\UnsupportedMediaType('Unknown Content-Type header "' . $contentType . '"'); } $len = $this->server->httpRequest->getHeader('Content-Length'); - - // Load the begin and end data - $start = ($range[0])?$range[0]:0; - $end = ($range[1])?$range[1]:$len-1; - - // Check consistency - if($end < $start) - throw new DAV\Exception\RequestedRangeNotSatisfiable('The end offset (' . $range[1] . ') is lower than the start offset (' . $range[0] . ')'); - if($end - $start + 1 != $len) - throw new DAV\Exception\RequestedRangeNotSatisfiable('Actual data length (' . $len . ') is not consistent with begin (' . $range[0] . ') and end (' . $range[1] . ') offsets'); - + if (!$len) throw new DAV\Exception\LengthRequired('A Content-Length header is required'); + + switch($range[0]) { + case self::RANGE_START : + // Calculate the end-range if it doesn't exist. + if (!$range[2]) { + $range[2] = $range[1] + $len - 1; + } else { + if ($range[2] < $range[1]) { + throw new DAV\Exception\RequestedRangeNotSatisfiable('The end offset (' . $range[2] . ') is lower than the start offset (' . $range[1] . ')'); + } + if($range[2] - $range[1] + 1 != $len) { + throw new DAV\Exception\RequestedRangeNotSatisfiable('Actual data length (' . $len . ') is not consistent with begin (' . $range[1] . ') and end (' . $range[2] . ') offsets'); + } + } + break; + } // Checking If-None-Match and related headers. if (!$this->server->checkPreconditions()) return; @@ -166,7 +176,23 @@ class Plugin extends DAV\ServerPlugin { return; $body = $this->server->httpRequest->getBody(); - $etag = $node->putRange($body, $start-1); + + + if ($node instanceof IPatchSupport) { + $etag = $node->patch($body, $range[0], isset($range[1])?$range[1]:null); + } else { + // The old interface + switch($range[0]) { + case self::RANGE_APPEND : + throw new DAV\Exception\NotImplemented('This node does not support the append syntax. Please upgrade it to IPatchSupport'); + case self::RANGE_START : + $etag = $node->putRange($body, $range[1]); + break; + case self::RANGE_END : + throw new DAV\Exception\NotImplemented('This node does not support the end-range syntax. Please upgrade it to IPatchSupport'); + break; + } + } $this->server->broadcastEvent('afterWriteContent',array($uri, $node)); @@ -177,18 +203,23 @@ class Plugin extends DAV\ServerPlugin { return false; } - + /** * Returns the HTTP custom range update header * * This method returns null if there is no well-formed HTTP range request - * header or array($start, $end). + * header. It returns array(1) if it was an append request, array(2, + * $start, $end) if it's a start and end range, lastly it's array(3, + * $endoffset) if the offset was negative, and should be calculated from + * the end of the file. * - * The first number is the offset of the first byte in the range. - * The second number is the offset of the last byte in the range. + * Examples: * - * If the second offset is null, it should be treated as the offset of the last byte of the entity - * If the first offset is null, the second offset should be used to retrieve the last x bytes of the entity + * null - invalid + * array(1) - append + * array(2,10,15) - update bytes 10, 11, 12, 13, 14, 15 + * array(2,10,null) - update bytes 10 until the end of the patch body + * array(3,-5) - update from 5 bytes from the end of the file. * * @return array|null */ @@ -199,14 +230,17 @@ class Plugin extends DAV\ServerPlugin { // Matching "Range: bytes=1234-5678: both numbers are optional - if (!preg_match('/^bytes=([0-9]*)-([0-9]*)$/i',$range,$matches)) return null; - - if ($matches[1]==='' && $matches[2]==='') return null; + if (!preg_match('/^(append)|(?:bytes=([0-9]+)-([0-9]*))|(?:bytes=(-[0-9]+))$/i',$range,$matches)) return null; - return array( - $matches[1]!==''?$matches[1]:null, - $matches[2]!==''?$matches[2]:null, - ); + if ($matches[1]==='append') { + return array(self::RANGE_APPEND); + } elseif (strlen($matches[2])>0) { + return array(self::RANGE_START, $matches[2], $matches[3]?:null); + } elseif ($matches[4]) { + return array(self::RANGE_END, $matches[4]); + } else { + return null; + } } } diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property.php b/vendor/sabre/dav/lib/Sabre/DAV/Property.php index c5943f1b0..d0c265907 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Property implements PropertyInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/GetLastModified.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/GetLastModified.php index b0b950535..987e3fc02 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/GetLastModified.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/GetLastModified.php @@ -16,7 +16,7 @@ use Sabre\HTTP; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class GetLastModified extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/Href.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/Href.php index e51d4e3f7..f0c162706 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/Href.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/Href.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Href extends DAV\Property implements IHref { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/HrefList.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/HrefList.php index e0cca68cd..a5bad4ace 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/HrefList.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/HrefList.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class HrefList extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/IHref.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/IHref.php index 473c1942f..268ab8d51 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/IHref.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/IHref.php @@ -11,7 +11,7 @@ namespace Sabre\DAV\Property; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface IHref { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/LockDiscovery.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/LockDiscovery.php index 52095f733..6b47935af 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/LockDiscovery.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/LockDiscovery.php @@ -11,7 +11,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class LockDiscovery extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/ResourceType.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/ResourceType.php index e5ce84b7f..68134f3f9 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/ResourceType.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/ResourceType.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class ResourceType extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/Response.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/Response.php index 16aa23168..370abc26b 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/Response.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/Response.php @@ -13,7 +13,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Response extends DAV\Property implements IHref { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/ResponseList.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/ResponseList.php index d9840f585..9db6cbbf5 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/ResponseList.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/ResponseList.php @@ -13,7 +13,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class ResponseList extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedLock.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedLock.php index 1bab4e0be..035c2f330 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedLock.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedLock.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class SupportedLock extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedReportSet.php b/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedReportSet.php index d5ed32c42..a8a90bb18 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedReportSet.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Property/SupportedReportSet.php @@ -12,7 +12,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class SupportedReportSet extends DAV\Property { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/PropertyInterface.php b/vendor/sabre/dav/lib/Sabre/DAV/PropertyInterface.php index f3b8862aa..2fb0d7db6 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/PropertyInterface.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/PropertyInterface.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ interface PropertyInterface { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Server.php b/vendor/sabre/dav/lib/Sabre/DAV/Server.php index 4aa6cacd4..e0a68ab50 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Server.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Server.php @@ -8,7 +8,7 @@ use Sabre\HTTP; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Server { @@ -684,6 +684,9 @@ class Server { */ protected function httpDelete($uri) { + // Checking If-None-Match and related headers. + if (!$this->checkPreconditions()) return; + if (!$this->broadcastEvent('beforeUnbind',array($uri))) return; $this->tree->delete($uri); $this->broadcastEvent('afterUnbind',array($uri)); @@ -871,13 +874,13 @@ class Server { } + // Checking If-None-Match and related headers. + if (!$this->checkPreconditions()) return; + if ($this->tree->nodeExists($uri)) { $node = $this->tree->getNodeForPath($uri); - // Checking If-None-Match and related headers. - if (!$this->checkPreconditions()) return; - // If the node is a collection, we'll deny it if (!($node instanceof IFile)) throw new Exception\Conflict('PUT is not allowed on non-files.'); if (!$this->broadcastEvent('beforeWriteContent',array($uri, $node, &$body))) return false; diff --git a/vendor/sabre/dav/lib/Sabre/DAV/ServerPlugin.php b/vendor/sabre/dav/lib/Sabre/DAV/ServerPlugin.php index 44bd037b9..c393f43fb 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/ServerPlugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/ServerPlugin.php @@ -9,7 +9,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/SimpleCollection.php b/vendor/sabre/dav/lib/Sabre/DAV/SimpleCollection.php index 17af83c8c..1bdb166c7 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/SimpleCollection.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/SimpleCollection.php @@ -10,7 +10,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class SimpleCollection extends Collection { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/SimpleFile.php b/vendor/sabre/dav/lib/Sabre/DAV/SimpleFile.php index 4c3b673ae..b7413fdde 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/SimpleFile.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/SimpleFile.php @@ -11,7 +11,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class SimpleFile extends File { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/StringUtil.php b/vendor/sabre/dav/lib/Sabre/DAV/StringUtil.php index 1f42694a5..c71575f49 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/StringUtil.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/StringUtil.php @@ -11,7 +11,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class StringUtil { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/TemporaryFileFilterPlugin.php b/vendor/sabre/dav/lib/Sabre/DAV/TemporaryFileFilterPlugin.php index 6c3f05b56..37f976b7b 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/TemporaryFileFilterPlugin.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/TemporaryFileFilterPlugin.php @@ -24,7 +24,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class TemporaryFileFilterPlugin extends ServerPlugin { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Tree.php b/vendor/sabre/dav/lib/Sabre/DAV/Tree.php index 196b6024b..ab94168b2 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Tree.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Tree.php @@ -7,7 +7,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ abstract class Tree { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Tree/Filesystem.php b/vendor/sabre/dav/lib/Sabre/DAV/Tree/Filesystem.php index 2e478b306..a477725a5 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Tree/Filesystem.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Tree/Filesystem.php @@ -15,7 +15,7 @@ use Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Filesystem extends DAV\Tree { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/URLUtil.php b/vendor/sabre/dav/lib/Sabre/DAV/URLUtil.php index 1ab874077..b7254e9a1 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/URLUtil.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/URLUtil.php @@ -19,7 +19,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class URLUtil { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/UUIDUtil.php b/vendor/sabre/dav/lib/Sabre/DAV/UUIDUtil.php index f20e1cba0..6a904a7bc 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/UUIDUtil.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/UUIDUtil.php @@ -11,7 +11,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class UUIDUtil { diff --git a/vendor/sabre/dav/lib/Sabre/DAV/Version.php b/vendor/sabre/dav/lib/Sabre/DAV/Version.php index c15de9de9..afe603c3c 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/Version.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/Version.php @@ -7,14 +7,14 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class Version { /** * Full version number */ - const VERSION = '1.8.9'; + const VERSION = '1.8.10'; /** * Stability : alpha, beta, stable diff --git a/vendor/sabre/dav/lib/Sabre/DAV/XMLUtil.php b/vendor/sabre/dav/lib/Sabre/DAV/XMLUtil.php index 046a59162..2bf81b3b8 100644 --- a/vendor/sabre/dav/lib/Sabre/DAV/XMLUtil.php +++ b/vendor/sabre/dav/lib/Sabre/DAV/XMLUtil.php @@ -7,7 +7,7 @@ namespace Sabre\DAV; * * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/). * @author Evert Pot (http://evertpot.com/) - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + * @license http://sabre.io/license/ Modified BSD License */ class XMLUtil { @@ -134,7 +134,7 @@ class XMLUtil { // Restoring old mechanism for error handling if ($oldErrorSetting===false) libxml_use_internal_errors(false); - if ($oldEntityLoaderSetting===false) libxml_disable_entity_loader(true); + if ($oldEntityLoaderSetting===false) libxml_disable_entity_loader(false); return $dom; -- cgit v1.2.3