summaryrefslogtreecommitdiffstats
path: root/3rdparty/Sabre
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-10-29 00:49:52 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-10-29 00:50:07 +0200
commit5ffec927012a98cdcc409318dd1b2a264f071b83 (patch)
tree19eaf696e66e324c301ba8207acc4af514fa14e1 /3rdparty/Sabre
parent7b01858c570f5d9d70946b257b66ecca144e2fbd (diff)
downloadnextcloud-server-5ffec927012a98cdcc409318dd1b2a264f071b83.tar.gz
nextcloud-server-5ffec927012a98cdcc409318dd1b2a264f071b83.zip
upgrade to Sabredav 1.5.4
Diffstat (limited to '3rdparty/Sabre')
-rw-r--r--3rdparty/Sabre/CardDAV/AddressBook.php10
-rw-r--r--3rdparty/Sabre/CardDAV/Backend/Abstract.php14
-rw-r--r--3rdparty/Sabre/CardDAV/Backend/PDO.php6
-rw-r--r--3rdparty/Sabre/CardDAV/Card.php8
-rw-r--r--3rdparty/Sabre/CardDAV/ICard.php10
-rw-r--r--3rdparty/Sabre/CardDAV/Plugin.php9
-rw-r--r--3rdparty/Sabre/CardDAV/UserAddressBooks.php8
-rw-r--r--3rdparty/Sabre/CardDAV/Version.php6
-rw-r--r--3rdparty/Sabre/DAV/Browser/GuessContentType.php2
-rw-r--r--3rdparty/Sabre/DAV/Server.php2
-rw-r--r--3rdparty/Sabre/DAV/Version.php2
-rw-r--r--3rdparty/Sabre/DAVACL/Exception/NeedPrivileges.php10
-rw-r--r--3rdparty/Sabre/DAVACL/PrincipalCollection.php2
-rw-r--r--3rdparty/Sabre/VObject/Component.php13
-rw-r--r--3rdparty/Sabre/VObject/Element/DateTime.php43
-rw-r--r--3rdparty/Sabre/VObject/Element/MultiDateTime.php6
-rw-r--r--3rdparty/Sabre/VObject/Node.php7
-rw-r--r--3rdparty/Sabre/VObject/Property.php13
-rw-r--r--3rdparty/Sabre/VObject/Reader.php6
-rw-r--r--3rdparty/Sabre/VObject/Version.php2
20 files changed, 102 insertions, 77 deletions
diff --git a/3rdparty/Sabre/CardDAV/AddressBook.php b/3rdparty/Sabre/CardDAV/AddressBook.php
index 3333480ea85..471ca7b338a 100644
--- a/3rdparty/Sabre/CardDAV/AddressBook.php
+++ b/3rdparty/Sabre/CardDAV/AddressBook.php
@@ -1,7 +1,9 @@
<?php
/**
- * UserAddressBook class
+ * The AddressBook class represents a CardDAV addressbook, owned by a specific user
+ *
+ * The AddressBook can contain multiple vcards
*
* @package Sabre
* @subpackage CardDAV
@@ -9,12 +11,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * The AddressBook class represents a CardDAV addressbook, owned by a specific user
- *
- * The AddressBook can contain multiple vcards
- */
class Sabre_CardDAV_AddressBook extends Sabre_DAV_Collection implements Sabre_CardDAV_IAddressBook, Sabre_DAV_IProperties, Sabre_DAVACL_IACL {
/**
diff --git a/3rdparty/Sabre/CardDAV/Backend/Abstract.php b/3rdparty/Sabre/CardDAV/Backend/Abstract.php
index f6d10291ca6..1f0253ddab8 100644
--- a/3rdparty/Sabre/CardDAV/Backend/Abstract.php
+++ b/3rdparty/Sabre/CardDAV/Backend/Abstract.php
@@ -2,6 +2,12 @@
/**
* Abstract Backend class
+ *
+ * This class serves as a base-class for addressbook backends
+ *
+ * Note that there are references to 'addressBookId' scattered throughout the
+ * class. The value of the addressBookId is completely up to you, it can be any
+ * arbitrary value you can use as an unique identifier.
*
* @package Sabre
* @subpackage CardDAV
@@ -9,14 +15,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * This class serves as a base-class for addressbook backends
- *
- * Note that there are references to 'addressBookId' scattered throughout the
- * class. The value of the addressBookId is completely up to you, it can be any
- * arbitrary value you can use as an unique identifier.
- */
abstract class Sabre_CardDAV_Backend_Abstract {
/**
diff --git a/3rdparty/Sabre/CardDAV/Backend/PDO.php b/3rdparty/Sabre/CardDAV/Backend/PDO.php
index 5556d0a7648..f4e44610ccf 100644
--- a/3rdparty/Sabre/CardDAV/Backend/PDO.php
+++ b/3rdparty/Sabre/CardDAV/Backend/PDO.php
@@ -2,6 +2,8 @@
/**
* PDO CardDAV backend
+ *
+ * This CardDAV backend uses PDO to store addressbooks
*
* @package Sabre
* @subpackage CardDAV
@@ -9,10 +11,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * This CardDAV backend uses PDO to store addressbooks
- */
class Sabre_CardDAV_Backend_PDO extends Sabre_CardDAV_Backend_Abstract {
/**
diff --git a/3rdparty/Sabre/CardDAV/Card.php b/3rdparty/Sabre/CardDAV/Card.php
index 5298d31e245..2844eaf7ed6 100644
--- a/3rdparty/Sabre/CardDAV/Card.php
+++ b/3rdparty/Sabre/CardDAV/Card.php
@@ -1,18 +1,14 @@
<?php
/**
- * Card class
+ * The Card object represents a single Card from an addressbook
*
* @package Sabre
* @subpackage CardDAV
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved.
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
- *
- /
-/**
- * The Card object represents a single Card from an addressbook
- */
+ */
class Sabre_CardDAV_Card extends Sabre_DAV_File implements Sabre_CardDAV_ICard, Sabre_DAVACL_IACL {
/**
diff --git a/3rdparty/Sabre/CardDAV/ICard.php b/3rdparty/Sabre/CardDAV/ICard.php
index 8f9bb097b56..25bcc551b73 100644
--- a/3rdparty/Sabre/CardDAV/ICard.php
+++ b/3rdparty/Sabre/CardDAV/ICard.php
@@ -2,18 +2,16 @@
/**
* Card interface
+ *
+ * Extend the ICard interface to allow your custom nodes to be picked up as
+ * 'Cards'.
*
* @package Sabre
* @subpackage CardDAV
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved.
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
- *
- /
-/**
- * Extend the ICard interface to allow your custom nodes to be picked up as
- * 'Cards'.
- */
+ */
interface Sabre_CardDAV_ICard extends Sabre_DAV_IFile {
}
diff --git a/3rdparty/Sabre/CardDAV/Plugin.php b/3rdparty/Sabre/CardDAV/Plugin.php
index 17766b78278..14c9c72b0d5 100644
--- a/3rdparty/Sabre/CardDAV/Plugin.php
+++ b/3rdparty/Sabre/CardDAV/Plugin.php
@@ -1,7 +1,9 @@
<?php
/**
- * CardDAV plugin
+ * CardDAV plugin
+ *
+ * The CardDAV plugin adds CardDAV functionality to the WebDAV server
*
* @package Sabre
* @subpackage CardDAV
@@ -9,11 +11,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-
-/**
- * The CardDAV plugin adds CardDAV functionality to the WebDAV server
- */
class Sabre_CardDAV_Plugin extends Sabre_DAV_ServerPlugin {
/**
diff --git a/3rdparty/Sabre/CardDAV/UserAddressBooks.php b/3rdparty/Sabre/CardDAV/UserAddressBooks.php
index 564ecd701f0..e9f2de7f741 100644
--- a/3rdparty/Sabre/CardDAV/UserAddressBooks.php
+++ b/3rdparty/Sabre/CardDAV/UserAddressBooks.php
@@ -2,17 +2,15 @@
/**
* UserAddressBooks class
- *
+ *
+ * The UserAddressBooks collection contains a list of addressbooks associated with a user
+ *
* @package Sabre
* @subpackage CardDAV
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved.
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * The UserAddressBooks collection contains a list of addressbooks associated with a user
- */
class Sabre_CardDAV_UserAddressBooks extends Sabre_DAV_Collection implements Sabre_DAV_IExtendedCollection, Sabre_DAVACL_IACL {
/**
diff --git a/3rdparty/Sabre/CardDAV/Version.php b/3rdparty/Sabre/CardDAV/Version.php
index c76ee360354..900fbf5e75c 100644
--- a/3rdparty/Sabre/CardDAV/Version.php
+++ b/3rdparty/Sabre/CardDAV/Version.php
@@ -2,6 +2,8 @@
/**
* Version Class
+ *
+ * This class contains the Sabre_CardDAV version information
*
* @package Sabre
* @subpackage CardDAV
@@ -9,10 +11,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * This class contains the Sabre_CardDAV version information
- */
class Sabre_CardDAV_Version {
/**
diff --git a/3rdparty/Sabre/DAV/Browser/GuessContentType.php b/3rdparty/Sabre/DAV/Browser/GuessContentType.php
index 8b55ec3ad9f..ee8c698d782 100644
--- a/3rdparty/Sabre/DAV/Browser/GuessContentType.php
+++ b/3rdparty/Sabre/DAV/Browser/GuessContentType.php
@@ -88,7 +88,7 @@ class Sabre_DAV_Browser_GuessContentType extends Sabre_DAV_ServerPlugin {
protected function getContentType($fileName) {
// Just grabbing the extension
- $extension = substr($fileName,strrpos($fileName,'.')+1);
+ $extension = strtolower(substr($fileName,strrpos($fileName,'.')+1));
if (isset($this->extensionMap[$extension]))
return $this->extensionMap[$extension];
diff --git a/3rdparty/Sabre/DAV/Server.php b/3rdparty/Sabre/DAV/Server.php
index b99866dad5e..3d76d4f1918 100644
--- a/3rdparty/Sabre/DAV/Server.php
+++ b/3rdparty/Sabre/DAV/Server.php
@@ -821,7 +821,7 @@ class Sabre_DAV_Server {
$node->put($body);
$this->httpResponse->setHeader('Content-Length','0');
- $this->httpResponse->sendStatus(200);
+ $this->httpResponse->sendStatus(204);
} else {
diff --git a/3rdparty/Sabre/DAV/Version.php b/3rdparty/Sabre/DAV/Version.php
index e7f7f83e6ff..6bece1985e4 100644
--- a/3rdparty/Sabre/DAV/Version.php
+++ b/3rdparty/Sabre/DAV/Version.php
@@ -14,7 +14,7 @@ class Sabre_DAV_Version {
/**
* Full version number
*/
- const VERSION = '1.5.3';
+ const VERSION = '1.5.4';
/**
* Stability : alpha, beta, stable
diff --git a/3rdparty/Sabre/DAVACL/Exception/NeedPrivileges.php b/3rdparty/Sabre/DAVACL/Exception/NeedPrivileges.php
index 640ab8efff4..024ab6641f3 100644
--- a/3rdparty/Sabre/DAVACL/Exception/NeedPrivileges.php
+++ b/3rdparty/Sabre/DAVACL/Exception/NeedPrivileges.php
@@ -2,6 +2,9 @@
/**
* NeedPrivileges
+ *
+ * The 403-need privileges is thrown when a user didn't have the appropriate
+ * permissions to perform an operation
*
* @package Sabre
* @subpackage DAVACL
@@ -10,13 +13,6 @@
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
-
-/**
- * NeedPrivileges
- *
- * The 403-need privileges is thrown when a user didn't have the appropriate
- * permissions to perform an operation
- */
class Sabre_DAVACL_Exception_NeedPrivileges extends Sabre_DAV_Exception_Forbidden {
/**
diff --git a/3rdparty/Sabre/DAVACL/PrincipalCollection.php b/3rdparty/Sabre/DAVACL/PrincipalCollection.php
index 3cc0ae84621..4d22bf8aa75 100644
--- a/3rdparty/Sabre/DAVACL/PrincipalCollection.php
+++ b/3rdparty/Sabre/DAVACL/PrincipalCollection.php
@@ -9,7 +9,7 @@
* The users are instances of Sabre_DAV_Auth_Principal
*
* @package Sabre
- * @subpackage DAV
+ * @subpackage DAVACL
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved.
* @author Evert Pot (http://www.rooftopsolutions.nl/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
diff --git a/3rdparty/Sabre/VObject/Component.php b/3rdparty/Sabre/VObject/Component.php
index 3d5a3d75635..47cf9f3d812 100644
--- a/3rdparty/Sabre/VObject/Component.php
+++ b/3rdparty/Sabre/VObject/Component.php
@@ -83,13 +83,16 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
if (!is_null($itemValue)) {
throw new InvalidArgumentException('The second argument must not be specified, when passing a VObject');
}
+ $item->parent = $this;
$this->children[] = $item;
} elseif(is_string($item)) {
if (!is_scalar($itemValue)) {
throw new InvalidArgumentException('The second argument must be scalar');
}
- $this->children[] = new Sabre_VObject_Property($item,$itemValue);
+ $item = new Sabre_VObject_Property($item,$itemValue);
+ $item->parent = $this;
+ $this->children[] = $item;
} else {
@@ -208,16 +211,19 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
$overWrite = count($matches)?key($matches):null;
if ($value instanceof Sabre_VObject_Component || $value instanceof Sabre_VObject_Property) {
+ $value->parent = $this;
if (!is_null($overWrite)) {
$this->children[$overWrite] = $value;
} else {
$this->children[] = $value;
}
} elseif (is_scalar($value)) {
+ $property = new Sabre_VObject_Property($name,$value);
+ $property->parent = $this;
if (!is_null($overWrite)) {
- $this->children[$overWrite] = new Sabre_VObject_Property($name,$value);
+ $this->children[$overWrite] = $property;
} else {
- $this->children[] = new Sabre_VObject_Property($name,$value);
+ $this->children[] = $property;
}
} else {
throw new InvalidArgumentException('You must pass a Sabre_VObject_Component, Sabre_VObject_Property or scalar type');
@@ -237,6 +243,7 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
foreach($matches as $k=>$child) {
unset($this->children[$k]);
+ $child->parent = null;
}
diff --git a/3rdparty/Sabre/VObject/Element/DateTime.php b/3rdparty/Sabre/VObject/Element/DateTime.php
index 30e5c6ca86a..3350ec02c88 100644
--- a/3rdparty/Sabre/VObject/Element/DateTime.php
+++ b/3rdparty/Sabre/VObject/Element/DateTime.php
@@ -70,7 +70,7 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
$this->setValue($dt->format('Ymd\\THis'));
$this->offsetUnset('VALUE');
$this->offsetUnset('TZID');
- $this->offsetSet('VALUE','DATE-TIME');
+ $this->offsetSet('VALUE','DATE-TIME');
break;
case self::UTC :
$dt->setTimeZone(new DateTimeZone('UTC'));
@@ -116,7 +116,7 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
list(
$this->dateType,
$this->dateTime
- ) = self::parseData($this->value, $this->offsetGet('TZID'));
+ ) = self::parseData($this->value, $this);
return $this->dateTime;
}
@@ -137,7 +137,7 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
list(
$this->dateType,
$this->dateTime,
- ) = self::parseData($this->value, $this->offsetGet('TZID'));
+ ) = self::parseData($this->value, $this);
return $this->dateType;
}
@@ -151,12 +151,12 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
* 2. A DateTime object (or null)
*
* @param string|null $propertyValue The string to parse (yymmdd or
- * ymmddThhmmss, etc..)
- * @param string|null $tzid The value of the 'TZID' property.
+ * ymmddThhmmss, etc..)
+ * @param Sabre_VObject_Property|null $property The instance of the
+ * property we're parsing.
* @return array
*/
- static public function parseData($propertyValue, $tzid) {
-
+ static public function parseData($propertyValue, Sabre_VObject_Property $property = null) {
if (is_null($propertyValue)) {
return array(null, null);
@@ -195,6 +195,8 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
);
}
+ // Finding the timezone.
+ $tzid = $property['TZID'];
if (!$tzid) {
return array(
self::LOCAL,
@@ -202,7 +204,32 @@ class Sabre_VObject_Element_DateTime extends Sabre_VObject_Property {
);
}
- $tz = new DateTimeZone($tzid->value);
+ try {
+ $tz = new DateTimeZone($tzid->value);
+ } catch (Exception $e) {
+
+ // The id was invalid, we're going to try to find the information
+ // through the VTIMEZONE object.
+
+ // First we find the root object
+ $root = $property;
+ while($root->parent) {
+ $root = $root->parent;
+ }
+
+ if (isset($root->VTIMEZONE)) {
+ foreach($root->VTIMEZONE as $vtimezone) {
+ if (((string)$vtimezone->TZID) == $tzid) {
+ if (isset($vtimezone->{'X-LIC-LOCATION'})) {
+ $tzid = (string)$vtimezone->{'X-LIC-LOCATION'};
+ }
+ }
+ }
+ }
+
+ $tz = new DateTimeZone($tzid);
+
+ }
$dt = new DateTime($dateStr, $tz);
$dt->setTimeZone($tz);
diff --git a/3rdparty/Sabre/VObject/Element/MultiDateTime.php b/3rdparty/Sabre/VObject/Element/MultiDateTime.php
index 5e677f5e5b5..dc6ca5abb80 100644
--- a/3rdparty/Sabre/VObject/Element/MultiDateTime.php
+++ b/3rdparty/Sabre/VObject/Element/MultiDateTime.php
@@ -60,7 +60,7 @@ class Sabre_VObject_Element_MultiDateTime extends Sabre_VObject_Property {
$val[] = $i->format('Ymd\\THis');
}
$this->setValue(implode(',',$val));
- $this->offsetSet('VALUE','DATE-TIME');
+ $this->offsetSet('VALUE','DATE-TIME');
break;
case Sabre_VObject_Element_DateTime::UTC :
$val = array();
@@ -121,7 +121,7 @@ class Sabre_VObject_Element_MultiDateTime extends Sabre_VObject_Property {
list(
$type,
$dt
- ) = Sabre_VObject_Element_DateTime::parseData($val, $this->offsetGet('TZID'));
+ ) = Sabre_VObject_Element_DateTime::parseData($val, $this);
$dts[] = $dt;
$this->dateType = $type;
}
@@ -154,7 +154,7 @@ class Sabre_VObject_Element_MultiDateTime extends Sabre_VObject_Property {
list(
$type,
$dt
- ) = Sabre_VObject_Element_DateTime::parseData($val, $this->offsetGet('TZID'));
+ ) = Sabre_VObject_Element_DateTime::parseData($val, $this);
$dts[] = $dt;
$this->dateType = $type;
}
diff --git a/3rdparty/Sabre/VObject/Node.php b/3rdparty/Sabre/VObject/Node.php
index efc7f76da79..7100b62f1cb 100644
--- a/3rdparty/Sabre/VObject/Node.php
+++ b/3rdparty/Sabre/VObject/Node.php
@@ -25,6 +25,13 @@ abstract class Sabre_VObject_Node implements IteratorAggregate, ArrayAccess, Cou
*/
protected $iterator = null;
+ /**
+ * A link to the parent node
+ *
+ * @var Sabre_VObject_Node
+ */
+ protected $parent = null;
+
/* {{{ IteratorAggregator interface */
/**
diff --git a/3rdparty/Sabre/VObject/Property.php b/3rdparty/Sabre/VObject/Property.php
index 624dd4b8a58..06058229043 100644
--- a/3rdparty/Sabre/VObject/Property.php
+++ b/3rdparty/Sabre/VObject/Property.php
@@ -149,13 +149,16 @@ class Sabre_VObject_Property extends Sabre_VObject_Element {
if (!is_null($itemValue)) {
throw new InvalidArgumentException('The second argument must not be specified, when passing a VObject');
}
+ $item->parent = $this;
$this->parameters[] = $item;
} elseif(is_string($item)) {
if (!is_scalar($itemValue)) {
throw new InvalidArgumentException('The second argument must be scalar');
}
- $this->parameters[] = new Sabre_VObject_Parameter($item,$itemValue);
+ $parameter = new Sabre_VObject_Parameter($item,$itemValue);
+ $parameter->parent = $this;
+ $this->parameters[] = $parameter;
} else {
@@ -231,12 +234,15 @@ class Sabre_VObject_Property extends Sabre_VObject_Element {
throw new InvalidArgumentException('A parameter name must be specified. This means you cannot use the $array[]="string" to add parameters.');
$this->offsetUnset($name);
- $this->parameters[] = new Sabre_VObject_Parameter($name, $value);
+ $parameter = new Sabre_VObject_Parameter($name, $value);
+ $parameter->parent = $this;
+ $this->parameters[] = $parameter;
} elseif ($value instanceof Sabre_VObject_Parameter) {
if (!is_null($name))
throw new InvalidArgumentException('Don\'t specify a parameter name if you\'re passing a Sabre_VObject_Parameter. Add using $array[]=$parameterObject.');
-
+
+ $value->parent = $this;
$this->parameters[] = $value;
} else {
throw new InvalidArgumentException('You can only add parameters to the property object');
@@ -258,6 +264,7 @@ class Sabre_VObject_Property extends Sabre_VObject_Element {
$result = array();
foreach($this->parameters as $key=>$parameter) {
if ($parameter->name == $name) {
+ $parameter->parent = null;
unset($this->parameters[$key]);
}
diff --git a/3rdparty/Sabre/VObject/Reader.php b/3rdparty/Sabre/VObject/Reader.php
index c38afbfb632..5ed7882ac91 100644
--- a/3rdparty/Sabre/VObject/Reader.php
+++ b/3rdparty/Sabre/VObject/Reader.php
@@ -95,7 +95,7 @@ class Sabre_VObject_Reader {
while(stripos($nextLine,"END:")!==0) {
- $obj->children[] = self::readLine($lines);
+ $obj->add(self::readLine($lines));
$nextLine = current($lines);
if ($nextLine===false)
@@ -140,7 +140,9 @@ class Sabre_VObject_Reader {
if ($matches['parameters']) {
- $obj->parameters = self::readParameters($matches['parameters']);
+ foreach(self::readParameters($matches['parameters']) as $param) {
+ $obj->add($param);
+ }
}
return $obj;
diff --git a/3rdparty/Sabre/VObject/Version.php b/3rdparty/Sabre/VObject/Version.php
index 950c1c51104..937c367e222 100644
--- a/3rdparty/Sabre/VObject/Version.php
+++ b/3rdparty/Sabre/VObject/Version.php
@@ -14,7 +14,7 @@ class Sabre_VObject_Version {
/**
* Full version number
*/
- const VERSION = '1.2.2';
+ const VERSION = '1.2.4';
/**
* Stability : alpha, beta, stable