aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/files
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-12-10 17:13:02 +0100
committerRobin Appelman <icewind@owncloud.com>2015-12-10 17:23:53 +0100
commit97f5c095f4018119e15d7c612a685da1dc91a340 (patch)
tree642396a4cb1d28759f96e24b2269c30a88199fa3 /lib/private/files
parent75c3d646350d03d113ba6565603ce77d1226cef3 (diff)
downloadnextcloud-server-97f5c095f4018119e15d7c612a685da1dc91a340.tar.gz
nextcloud-server-97f5c095f4018119e15d7c612a685da1dc91a340.zip
Dont do a seperate request to check if a file exists for dav->fopen
Diffstat (limited to 'lib/private/files')
-rw-r--r--lib/private/files/storage/dav.php22
1 files changed, 14 insertions, 8 deletions
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index dda163e41a0..9afebab1dd7 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -34,6 +34,7 @@
namespace OC\Files\Storage;
use Exception;
+use GuzzleHttp\Exception\RequestException;
use OC\Files\Filesystem;
use OC\Files\Stream\Close;
use Icewind\Streams\IteratorDirectory;
@@ -339,15 +340,20 @@ class DAV extends Common {
switch ($mode) {
case 'r':
case 'rb':
- if (!$this->file_exists($path)) {
- return false;
+ try {
+ $response = $this->httpClientService
+ ->newClient()
+ ->get($this->createBaseUri() . $this->encodePath($path), [
+ 'auth' => [$this->user, $this->password],
+ 'stream' => true
+ ]);
+ } catch (RequestException $e) {
+ if ($e->getResponse()->getStatusCode() === 404) {
+ return false;
+ } else {
+ throw $e;
+ }
}
- $response = $this->httpClientService
- ->newClient()
- ->get($this->createBaseUri() . $this->encodePath($path), [
- 'auth' => [$this->user, $this->password],
- 'stream' => true
- ]);
if ($response->getStatusCode() !== Http::STATUS_OK) {
if ($response->getStatusCode() === Http::STATUS_LOCKED) {