diff options
Diffstat (limited to 'lib/private/connector/sabre/server.php')
-rw-r--r-- | lib/private/connector/sabre/server.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/private/connector/sabre/server.php b/lib/private/connector/sabre/server.php index aaf4fe85af9..43c3464f1ca 100644 --- a/lib/private/connector/sabre/server.php +++ b/lib/private/connector/sabre/server.php @@ -33,6 +33,11 @@ class OC_Connector_Sabre_Server extends Sabre\DAV\Server { */ private $overLoadedUri = null; + /** + * @var boolean + */ + private $ignoreRangeHeader = false; + public function getRequestUri() { if (!is_null($this->overLoadedUri)) { @@ -59,6 +64,23 @@ class OC_Connector_Sabre_Server extends Sabre\DAV\Server { return $result; } + public function getHTTPRange() { + if ($this->ignoreRangeHeader) { + return null; + } + return parent::getHTTPRange(); + } + + protected function httpGet($uri) { + $range = $this->getHTTPRange(); + + if (OC_App::isEnabled('files_encryption') && $range) { + // encryption does not support range requests + $this->ignoreRangeHeader = true; + } + return parent::httpGet($uri); + } + /** * @see \Sabre\DAV\Server */ |