Skip to content

Commit 4ea81c1

Browse files
-
1 parent e02a151 commit 4ea81c1

File tree

3 files changed

+68
-26
lines changed

3 files changed

+68
-26
lines changed

src/Symfony/Component/HttpClient/Internal/AmpClientState.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public function __construct(
5454
private int $maxPendingPushes,
5555
private ?LoggerInterface &$logger,
5656
) {
57-
$clientConfigurator ??= static fn (PooledHttpClient $client) => new InterceptedHttpClient($client, new RetryRequests(2));
57+
$clientConfigurator ??= static fn (PooledHttpClient $client) => new InterceptedHttpClient($client, new RetryRequests(2), []);
5858
$this->clientConfigurator = $clientConfigurator(...);
5959
}
6060

@@ -130,7 +130,7 @@ private function getClient(array $options): array
130130
$options['crypto_method'] && $context = $context->withMinimumVersion($options['crypto_method']);
131131

132132
$connector = $handleConnector = new class() implements SocketConnector {
133-
public DnsConnector $connector;
133+
public DnsSocketConnector $connector;
134134
public string $uri;
135135
/** @var resource|null */
136136
public $handle;

src/Symfony/Component/HttpClient/Internal/AmpListener.php

Lines changed: 65 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111

1212
namespace Symfony\Component\HttpClient\Internal;
1313

14+
use Amp\Http\Client\ApplicationInterceptor;
15+
use Amp\Http\Client\Connection\Connection;
1416
use Amp\Http\Client\Connection\Stream;
1517
use Amp\Http\Client\EventListener;
18+
use Amp\Http\Client\NetworkInterceptor;
1619
use Amp\Http\Client\Request;
17-
use Amp\Promise;
18-
use Amp\Success;
20+
use Amp\Http\Client\Response;
1921
use Symfony\Component\HttpClient\Exception\TransportException;
2022

2123
/**
@@ -49,30 +51,29 @@ public function __construct(
4951
$this->info = &$info;
5052
}
5153

52-
public function startRequest(Request $request): void
54+
public function completeDnsResolution(Request $request): void
5355
{
54-
$this->info['start_time'] ??= microtime(true);
56+
$this->info['namelookup_time'] = microtime(true) - $this->info['start_time'];
5557
($this->onProgress)();
5658
}
5759

58-
public function startDnsResolution(Request $request): void
59-
{
60-
($this->onProgress)();
61-
}
60+
//XXX
6261

63-
public function startConnectionCreation(Request $request): void
62+
public function requestStart(Request $request): void
6463
{
64+
$this->info['start_time'] ??= microtime(true);
6565
($this->onProgress)();
6666
}
6767

68-
public function startTlsNegotiation(Request $request): void
68+
public function connectionAcquired(Request $request, Connection $connection, int $streamCount): void
6969
{
70+
$this->info['connect_time'] = microtime(true) - $this->info['start_time'];
7071
($this->onProgress)();
7172
}
7273

73-
public function startSendingRequest(Request $request, Stream $stream): void
74+
public function requestHeaderStart(Request $request, Stream $stream): void
7475
{
75-
$host = $stream->getRemoteAddress()->getAddress();
76+
$host = $stream->getRemoteAddress()->toString();
7677

7778
if (str_contains($host, ':')) {
7879
$host = '['.$host.']';
@@ -121,41 +122,82 @@ public function startSendingRequest(Request $request, Stream $stream): void
121122
$this->info['debug'] .= "\r\n";
122123
}
123124

124-
public function completeSendingRequest(Request $request, Stream $stream): void
125+
public function requestBodyEnd(Request $request, Stream $stream): void
126+
{
127+
}
128+
129+
public function responseHeaderStart(Request $request, Stream $stream): void
130+
{
131+
}
132+
133+
public function requestEnd(Request $request, Response $response): void
134+
{
135+
}
136+
137+
public function requestFailed(Request $request, \Throwable $exception): void
125138
{
139+
$this->handle = null;
126140
($this->onProgress)();
127141
}
128142

129-
public function startReceivingResponse(Request $request, Stream $stream): void
143+
public function requestHeaderEnd(Request $request, Stream $stream): void
130144
{
131-
$this->info['starttransfer_time'] = microtime(true) - $this->info['start_time'];
132145
($this->onProgress)();
133146
}
134147

135-
public function completeReceivingResponse(Request $request, Stream $stream): void
148+
public function requestBodyStart(Request $request, Stream $stream): void
149+
{
150+
}
151+
152+
public function requestBodyProgress(Request $request, Stream $stream): void
136153
{
137-
$this->handle = null;
138154
($this->onProgress)();
139155
}
140156

141-
public function completeDnsResolution(Request $request): void
157+
public function responseHeaderEnd(Request $request, Stream $stream, Response $response): void
142158
{
143-
$this->info['namelookup_time'] = microtime(true) - $this->info['start_time'];
159+
}
160+
161+
public function responseBodyStart(Request $request, Stream $stream, Response $response): void
162+
{
163+
$this->info['starttransfer_time'] = microtime(true) - $this->info['start_time'];
144164
($this->onProgress)();
145165
}
146166

147-
public function completeConnectionCreation(Request $request): void
167+
public function responseBodyProgress(Request $request, Stream $stream, Response $response): void
148168
{
149-
$this->info['connect_time'] = microtime(true) - $this->info['start_time'];
150169
($this->onProgress)();
151170
}
152171

153-
public function completeTlsNegotiation(Request $request): void
172+
public function responseBodyEnd(Request $request, Stream $stream, Response $response): void
154173
{
174+
$this->handle = null;
155175
($this->onProgress)();
156176
}
157177

158-
public function abort(Request $request, \Throwable $cause): void
178+
public function applicationInterceptorStart(Request $request, ApplicationInterceptor $interceptor): void
179+
{
180+
}
181+
182+
public function applicationInterceptorEnd(Request $request, ApplicationInterceptor $interceptor, Response $response): void
183+
{
184+
}
185+
186+
public function networkInterceptorStart(Request $request, NetworkInterceptor $interceptor): void
187+
{
188+
}
189+
190+
public function networkInterceptorEnd(Request $request, NetworkInterceptor $interceptor, Response $response): void
191+
{
192+
}
193+
194+
public function push(Request $request): void
195+
{
196+
}
197+
198+
public function requestRejected(Request $request): void
159199
{
200+
$this->handle = null;
201+
($this->onProgress)();
160202
}
161203
}

src/Symfony/Component/HttpClient/Response/AmpResponse.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public function __wakeup(): void
135135
public function __destruct()
136136
{
137137
try {
138-
//$this->doDestruct();
138+
$this->doDestruct();
139139
} finally {
140140
// Clear the DNS cache when all requests completed
141141
if (0 >= --$this->multi->responseCount) {

0 commit comments

Comments
 (0)