From 9b58a027e3312d14ee3cd724841ae32af481d03c Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 12 Jan 2021 10:10:08 +0100 Subject: [PATCH 1/2] Allow installing/updating of apps again The Guzzle API changed. We shall now use sink Signed-off-by: Roeland Jago Douma --- lib/private/Installer.php | 2 +- tests/lib/InstallerTest.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/private/Installer.php b/lib/private/Installer.php index e0eb8e9de1..6dfc9a5f0b 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -286,7 +286,7 @@ class Installer { $tempFile = $this->tempManager->getTemporaryFile('.tar.gz'); $timeout = $this->isCLI ? 0 : 120; $client = $this->clientService->newClient(); - $client->get($app['releases'][0]['download'], ['save_to' => $tempFile, 'timeout' => $timeout]); + $client->get($app['releases'][0]['download'], ['sink' => $tempFile, 'timeout' => $timeout]); // Check if the signature actually matches the downloaded content $certificate = openssl_get_publickey($app['certificate']); diff --git a/tests/lib/InstallerTest.php b/tests/lib/InstallerTest.php index 58602a7cf5..2626e047c7 100644 --- a/tests/lib/InstallerTest.php +++ b/tests/lib/InstallerTest.php @@ -348,7 +348,7 @@ u/spPSSVhaun5BA1FlphB2TkgnzlCmxJa63nFY045e/Jq+IKMcqqZl/092gbI2EQ $client ->expects($this->once()) ->method('get') - ->with('https://example.com', ['save_to' => $realTmpFile, 'timeout' => 120]); + ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]); $this->clientService ->expects($this->once()) ->method('newClient') @@ -432,7 +432,7 @@ YwDVP+QmNRzx72jtqAN/Kc3CvQ9nkgYhU65B95aX0xA=', $client ->expects($this->once()) ->method('get') - ->with('https://example.com', ['save_to' => $realTmpFile, 'timeout' => 120]); + ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]); $this->clientService ->expects($this->once()) ->method('newClient') @@ -515,7 +515,7 @@ YwDVP+QmNRzx72jtqAN/Kc3CvQ9nkgYhU65B95aX0xA=', $client ->expects($this->once()) ->method('get') - ->with('https://example.com', ['save_to' => $realTmpFile, 'timeout' => 120]); + ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]); $this->clientService ->expects($this->once()) ->method('newClient') @@ -594,7 +594,7 @@ MPLX6f5V9tCJtlH6ztmEcDROfvuVc0U3rEhqx2hphoyo+MZrPFpdcJL8KkIdMKbY $client ->expects($this->once()) ->method('get') - ->with('https://example.com', ['save_to' => $realTmpFile, 'timeout' => 120]); + ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]); $this->clientService ->expects($this->at(0)) ->method('newClient') @@ -680,7 +680,7 @@ JXhrdaWDZ8fzpUjugrtC3qslsqL0dzgU37anS3HwrT8=', $client ->expects($this->once()) ->method('get') - ->with('https://example.com', ['save_to' => $realTmpFile, 'timeout' => 120]); + ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]); $this->clientService ->expects($this->at(1)) ->method('newClient') From 41c80d6c19ee3bb0bb0bec43b3a030df8165430d Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 12 Jan 2021 11:01:06 +0100 Subject: [PATCH 2/2] Fix option in the client code itself as well Signed-off-by: Roeland Jago Douma --- lib/private/Http/Client/Client.php | 18 ++++++++++++------ lib/public/Http/Client/IClient.php | 12 ++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/private/Http/Client/Client.php b/lib/private/Http/Client/Client.php index 3f616df0b2..12d1efb45a 100644 --- a/lib/private/Http/Client/Client.php +++ b/lib/private/Http/Client/Client.php @@ -95,6 +95,12 @@ class Client implements IClient { $options[RequestOptions::HEADERS]['Accept-Encoding'] = 'gzip'; } + // Fallback for save_to + if (isset($options['save_to'])) { + $options['sink'] = $options['save_to']; + unset($options['save_to']); + } + return $options; } @@ -218,7 +224,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, @@ -249,7 +255,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, @@ -284,7 +290,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, @@ -324,7 +330,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, @@ -359,7 +365,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, @@ -394,7 +400,7 @@ class Client implements IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * 'timeout' => 5, diff --git a/lib/public/Http/Client/IClient.php b/lib/public/Http/Client/IClient.php index 4c50c1c649..1498cfaaba 100644 --- a/lib/public/Http/Client/IClient.php +++ b/lib/public/Http/Client/IClient.php @@ -55,7 +55,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse @@ -80,7 +80,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse @@ -110,7 +110,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse @@ -140,7 +140,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse @@ -170,7 +170,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse @@ -200,7 +200,7 @@ interface IClient { * 'referer' => true, // add a Referer header * 'protocols' => ['https'] // only allow https URLs * ], - * 'save_to' => '/path/to/file', // save to a file or a stream + * 'sink' => '/path/to/file', // save to a file or a stream * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse