Skip to content

Commit 8068f2c

Browse files
committed
Wrap TimeoutException and DNS resolution exceptions to ConnectException, all other exceptions to RequestException.
1 parent 377ff7d commit 8068f2c

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/GuzzleHandlerAdapter.php

+12-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Amp\Cancellation;
77
use Amp\CancelledException;
88
use Amp\DeferredCancellation;
9+
use Amp\Dns\DnsException;
910
use Amp\Dns\DnsRecord;
1011
use Amp\File\File;
1112
use Amp\File\FilesystemException;
@@ -17,7 +18,7 @@
1718
use Amp\Http\Client\Psr7\PsrHttpClientException;
1819
use Amp\Http\Client\Request as AmpRequest;
1920
use Amp\Http\Client\Response;
20-
use Amp\Http\Client\SocketException;
21+
use Amp\Http\Client\TimeoutException;
2122
use Amp\Http\Tunnel\Http1TunnelConnector;
2223
use Amp\Http\Tunnel\Https1TunnelConnector;
2324
use Amp\Socket\Certificate;
@@ -27,6 +28,7 @@
2728
use Amp\Socket\Socks5SocketConnector;
2829
use AssertionError;
2930
use GuzzleHttp\Exception\ConnectException;
31+
use GuzzleHttp\Exception\RequestException;
3032
use GuzzleHttp\Promise\Promise;
3133
use GuzzleHttp\Promise\PromiseInterface;
3234
use GuzzleHttp\Psr7\Request as GuzzleRequest;
@@ -140,9 +142,16 @@ function () use (&$promise, $future, $cancellation, $deferredCancellation, $requ
140142
if (!$cancellation->isRequested()) {
141143
$promise->reject($e);
142144
}
143-
} catch (SocketException $e) {
144-
$promise->reject(new ConnectException($e->getMessage(), $request, $e));
145145
} catch (\Throwable $e) {
146+
if ($e instanceof TimeoutException) {
147+
$e = new ConnectException($e->getMessage(), $request, $e);
148+
} elseif ($e->getPrevious()?->getPrevious() instanceof DnsException) {
149+
// Wrap DNS resolution exception to ConnectException
150+
$e = new ConnectException($e->getPrevious()->getMessage(), $request, $e);
151+
} else {
152+
$e = RequestException::wrapException($request, $e);
153+
}
154+
146155
$promise->reject($e);
147156
}
148157
},

0 commit comments

Comments
 (0)