Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kesselberg <mail@danielkesselberg.de>2021-08-04 14:14:06 +0300
committerDaniel Kesselberg <mail@danielkesselberg.de>2021-08-04 15:48:25 +0300
commit1d2da1b2c58f1cc5a11f8626785c0120ed289fd9 (patch)
treeabe9d0a9829f2d894f9b7176d9de0981ae271bea /lib/Controller
parenta0d72077203f108f015c12619d06edfd923e8a32 (diff)
Catch guzzle error in proxy
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'lib/Controller')
-rw-r--r--lib/Controller/ProxyController.php28
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/Controller/ProxyController.php b/lib/Controller/ProxyController.php
index 1cafae9ce..af0d73374 100644
--- a/lib/Controller/ProxyController.php
+++ b/lib/Controller/ProxyController.php
@@ -34,6 +34,8 @@ use OCP\Http\Client\IClientService;
use OCP\IRequest;
use OCP\ISession;
use OCP\IURLGenerator;
+use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Log\LoggerInterface;
class ProxyController extends Controller {
@@ -46,29 +48,21 @@ class ProxyController extends Controller {
/** @var IClientService */
private $clientService;
- /** @var string */
- private $hostname;
+ /** @var LoggerInterface */
+ private $logger;
- /**
- * @param string $appName
- * @param IRequest $request
- * @param IURLGenerator $urlGenerator
- * @param ISession $session
- * @param IClientService $clientService
- * @param string $hostname
- */
public function __construct(string $appName,
IRequest $request,
IURLGenerator $urlGenerator,
ISession $session,
IClientService $clientService,
- $hostname) {
+ LoggerInterface $logger) {
parent::__construct($appName, $request);
$this->request = $request;
$this->urlGenerator = $urlGenerator;
$this->session = $session;
$this->clientService = $clientService;
- $this->hostname = $hostname;
+ $this->logger = $logger;
}
/**
@@ -120,8 +114,14 @@ class ProxyController extends Controller {
$this->session->close();
$client = $this->clientService->newClient();
- $response = $client->get($src);
- $content = $response->getBody();
+ try {
+ $response = $client->get($src);
+ $content = $response->getBody();
+ } catch (ClientExceptionInterface $e) {
+ $this->logger->notice('Unable to proxy image', ['exception' => $e]);
+ $content = file_get_contents(__DIR__ . '/../../img/blocked-image.png');
+ }
+
return new ProxyDownloadResponse($content, $src, 'application/octet-stream');
}
}