summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-10-17 20:20:13 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2013-10-17 20:20:13 +0200
commitd2d2c9a46d86be2b38d6e88c1943e7328ebb26d3 (patch)
tree2eaf9616555c6101af11df9071fd94f35483d4d4
parent76be7cd1ac54a8f4a5707c7a50eee106383aa51d (diff)
downloadnextcloud-server-d2d2c9a46d86be2b38d6e88c1943e7328ebb26d3.tar.gz
nextcloud-server-d2d2c9a46d86be2b38d6e88c1943e7328ebb26d3.zip
fixes #5367
-rw-r--r--lib/private/connector/sabre/file.php2
-rw-r--r--lib/private/filechunking.php10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php
index 3402946a136..fd12039d916 100644
--- a/lib/private/connector/sabre/file.php
+++ b/lib/private/connector/sabre/file.php
@@ -215,7 +215,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D
if (isset($_SERVER['CONTENT_LENGTH'])) {
$expected = $_SERVER['CONTENT_LENGTH'];
if ($bytesWritten != $expected) {
- $chunk_handler->cleanup();
+ $chunk_handler->remove($info['index']);
throw new Sabre_DAV_Exception_BadRequest(
'expected filesize ' . $expected . ' got ' . $bytesWritten);
}
diff --git a/lib/private/filechunking.php b/lib/private/filechunking.php
index 0dfce696cda..aa4f73c7c05 100644
--- a/lib/private/filechunking.php
+++ b/lib/private/filechunking.php
@@ -85,6 +85,16 @@ class OC_FileChunking {
}
}
+ /**
+ * Removes one specific chunk
+ * @param $index
+ */
+ public function remove($index) {
+ $cache = $this->getCache();
+ $prefix = $this->getPrefix();
+ $cache->remove($prefix.$index);
+ }
+
public function signature_split($orgfile, $input) {
$info = unpack('n', fread($input, 2));
$blocksize = $info[1];