summaryrefslogtreecommitdiffstats
path: root/lib/private/connector/sabre/server.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/connector/sabre/server.php')
-rw-r--r--lib/private/connector/sabre/server.php22
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
*/