summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2019-03-14 14:46:39 +0100
committerBackportbot <backportbot-noreply@rullzer.com>2019-03-14 16:19:09 +0000
commit54b14946b422c9cb685f673e4c799b862eda33cb (patch)
treee24bb26abb652b574615fc0634a73de01397aaf2
parent92634ec842eb860dcb9e48bc2fe2d6e734dae145 (diff)
downloadnextcloud-server-54b14946b422c9cb685f673e4c799b862eda33cb.tar.gz
nextcloud-server-54b14946b422c9cb685f673e4c799b862eda33cb.zip
handle long etags from dav external storage
we can only store etags up to 40 characters long in the database, so when we get an etag that's longer we simply hash it to bring down the length Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r--lib/private/Files/Storage/DAV.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index abb76660ca8..52ed8900569 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -726,7 +726,11 @@ class DAV extends Common {
return null;
}
if (isset($response['{DAV:}getetag'])) {
- return trim($response['{DAV:}getetag'], '"');
+ $etag = trim($response['{DAV:}getetag'], '"');
+ if (strlen($etag) > 40) {
+ $etag = md5($etag);
+ }
+ return $etag;
}
return parent::getEtag($path);
}