diff options
author | Robin Appelman <icewind@owncloud.com> | 2015-12-10 17:13:02 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-12-10 17:23:53 +0100 |
commit | 97f5c095f4018119e15d7c612a685da1dc91a340 (patch) | |
tree | 642396a4cb1d28759f96e24b2269c30a88199fa3 /lib/private/files | |
parent | 75c3d646350d03d113ba6565603ce77d1226cef3 (diff) | |
download | nextcloud-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.php | 22 |
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) { |