diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 69e6f309c3..ca96e6b743 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -34,7 +34,6 @@ namespace OC\Files\Storage; use Exception; -use GuzzleHttp\Exception\RequestException; use Icewind\Streams\CallbackWrapper; use Icewind\Streams\IteratorDirectory; use OC\Files\Filesystem; @@ -45,6 +44,8 @@ use OCP\Files\FileInfo; use OCP\Files\ForbiddenException; use OCP\Files\StorageInvalidException; use OCP\Files\StorageNotAvailableException; +use OCP\Http\Client\IClientService; +use OCP\ICertificateManager; use OCP\ILogger; use OCP\Util; use Psr\Http\Message\ResponseInterface; @@ -79,8 +80,10 @@ class DAV extends Common { protected $client; /** @var ArrayCache */ protected $statCache; - /** @var \OCP\Http\Client\IClientService */ + /** @var IClientService */ protected $httpClientService; + /** @var ICertificateManager */ + protected $certManager; /** * @param array $params @@ -111,13 +114,9 @@ class DAV extends Common { } if ($this->secure === true) { // inject mock for testing - $certManager = \OC::$server->getCertificateManager(); - if (is_null($certManager)) { //no user - $certManager = \OC::$server->getCertificateManager(null); - } - $certPath = $certManager->getAbsoluteBundlePath(); - if (file_exists($certPath)) { - $this->certPath = $certPath; + $this->certManager = \OC::$server->getCertificateManager(); + if (is_null($this->certManager)) { //no user + $this->certManager = \OC::$server->getCertificateManager(null); } } $this->root = $params['root'] ?? '/'; @@ -150,8 +149,15 @@ class DAV extends Common { $this->client = new Client($settings); $this->client->setThrowExceptions(true); - if ($this->secure === true && $this->certPath) { - $this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath); + + if($this->secure === true) { + $certPath = $this->certManager->getAbsoluteBundlePath(); + if (file_exists($certPath)) { + $this->certPath = $certPath; + } + if ($this->certPath) { + $this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath); + } } }