Correctly handle emtpy string in proxyuserpwd config
As documented, the default value for config value proxyuserpwd is ''. However, that value results in the error: "cURL error 5: Unsupported proxy syntax in '@'". This patch handles the values of '' and null (the default in the code) the same for config values proxyuserpwd and proxy. Signed-off-by: Scott Shambarger <devel@shambarger.net>
This commit is contained in:
parent
1d72073e34
commit
edf946dfc7
|
@ -95,15 +95,15 @@ class Client implements IClient {
|
||||||
* @return string|null
|
* @return string|null
|
||||||
*/
|
*/
|
||||||
private function getProxyUri(): ?string {
|
private function getProxyUri(): ?string {
|
||||||
$proxyHost = $this->config->getSystemValue('proxy', null);
|
$proxyHost = $this->config->getSystemValue('proxy', '');
|
||||||
|
|
||||||
if ($proxyHost === null) {
|
if ($proxyHost === '' || $proxyHost === null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$proxyUserPwd = $this->config->getSystemValue('proxyuserpwd', null);
|
$proxyUserPwd = $this->config->getSystemValue('proxyuserpwd', '');
|
||||||
|
|
||||||
if ($proxyUserPwd === null) {
|
if ($proxyUserPwd === '' || $proxyUserPwd === null) {
|
||||||
return $proxyHost;
|
return $proxyHost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,12 +70,22 @@ class ClientTest extends \Test\TestCase {
|
||||||
$this->config
|
$this->config
|
||||||
->expects($this->at(0))
|
->expects($this->at(0))
|
||||||
->method('getSystemValue')
|
->method('getSystemValue')
|
||||||
->with('proxy', null)
|
->with(
|
||||||
|
$this->equalTo('proxy'),
|
||||||
|
$this->callback(function ($input) {
|
||||||
|
return $input === '';
|
||||||
|
})
|
||||||
|
)
|
||||||
->willReturn('foo');
|
->willReturn('foo');
|
||||||
$this->config
|
$this->config
|
||||||
->expects($this->at(1))
|
->expects($this->at(1))
|
||||||
->method('getSystemValue')
|
->method('getSystemValue')
|
||||||
->with('proxyuserpwd', null)
|
->with(
|
||||||
|
$this->equalTo('proxyuserpwd'),
|
||||||
|
$this->callback(function ($input) {
|
||||||
|
return $input === '';
|
||||||
|
})
|
||||||
|
)
|
||||||
->willReturn('username:password');
|
->willReturn('username:password');
|
||||||
$this->assertSame('username:password@foo', self::invokePrivate($this->client, 'getProxyUri'));
|
$this->assertSame('username:password@foo', self::invokePrivate($this->client, 'getProxyUri'));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue