Skip to content

Commit

Permalink
Remove connection info from Response
Browse files Browse the repository at this point in the history
  • Loading branch information
trowski committed Jun 25, 2019
1 parent c862d24 commit 7520500
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 64 deletions.
2 changes: 1 addition & 1 deletion src/Connection/DefaultConnectionPool.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
use Amp\Http\Client\SocketException;
use Amp\Http\Client\TimeoutException;
use Amp\Promise;
use Amp\Socket;
use Amp\Socket\ClientTlsContext;
use Amp\Socket\ConnectContext;
use Amp\Socket\Connector;
use Amp\Socket;
use Amp\Socket\EncryptableSocket;
use Amp\TimeoutCancellationToken;
use function Amp\call;
Expand Down
5 changes: 3 additions & 2 deletions src/Connection/Http1Connection.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ public function getTlsInfo(): ?TlsInfo
}

/** @inheritdoc */
public function request(Request $request, ?CancellationToken $cancellation = null): Promise {
public function request(Request $request, ?CancellationToken $cancellation = null): Promise
{
return call(function () use ($request, $cancellation) {
$cancellation = $cancellation ?? new NullCancellationToken;

Expand Down Expand Up @@ -161,7 +162,7 @@ private function doRead(
$backpressure = $bodyEmitter->emit($data);
};

$parser = new Http1Parser($request, $this, $bodyCallback);
$parser = new Http1Parser($request, $bodyCallback);

try {
while (null !== $chunk = yield $this->socket->read()) {
Expand Down
8 changes: 2 additions & 6 deletions src/Connection/Http1Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ final class Http1Parser
/** @var string */
private $request;

/** @var Connection */
private $connection;

/** @var int */
private $maxHeaderBytes;

Expand All @@ -72,10 +69,9 @@ final class Http1Parser
/** @var callable */
private $bodyDataCallback;

public function __construct(Request $request, Connection $connection, callable $bodyDataCallback = null)
public function __construct(Request $request, callable $bodyDataCallback = null)
{
$this->request = $request;
$this->connection = $connection;
$this->bodyDataCallback = $bodyDataCallback;
$this->maxHeaderBytes = $request->getHeaderSizeLimit();
$this->maxBodyBytes = $request->getBodySizeLimit();
Expand Down Expand Up @@ -173,7 +169,7 @@ public function parse(string $data = null): ?Response
$this->complete = true;
}

return new Response($this->protocol, $this->statusCode, $this->statusReason, $this->headers, new InMemoryStream, $this->request, $this->connection);
return new Response($this->protocol, $this->statusCode, $this->statusReason, $this->headers, new InMemoryStream, $this->request);
}

body_identity:
Expand Down
1 change: 0 additions & 1 deletion src/Internal/NetworkInterceptorClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use Amp\CancellationToken;
use Amp\Http\Client\Client;
use Amp\Http\Client\Connection\Connection;
use Amp\Http\Client\ConnectionInfo;
use Amp\Http\Client\NetworkInterceptor;
use Amp\Http\Client\Request;
use Amp\NullCancellationToken;
Expand Down
34 changes: 0 additions & 34 deletions src/Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@

use Amp\ByteStream\InputStream;
use Amp\ByteStream\Payload;
use Amp\Http\Client\Connection\Connection;
use Amp\Http\Message;
use Amp\Promise;
use Amp\Socket\SocketAddress;
use Amp\Socket\TlsInfo;
use Amp\Success;

/**
Expand All @@ -25,7 +22,6 @@ final class Response extends Message
private $reason;
private $request;
private $body;
private $connection;
private $completionPromise;
private $previousResponse;

Expand All @@ -36,7 +32,6 @@ public function __construct(
array $headers,
InputStream $body,
Request $request,
Connection $connection,
?Promise $completionPromise = null,
?Response $previousResponse = null
) {
Expand All @@ -45,7 +40,6 @@ public function __construct(
$this->reason = $reason;
$this->body = new Payload($body);
$this->request = $request;
$this->connection = $connection;
$this->completionPromise = $completionPromise ?? new Success;
$this->previousResponse = $previousResponse;

Expand Down Expand Up @@ -220,34 +214,6 @@ public function getBody(): Payload
return $this->body;
}

public function getLocalAddress(): SocketAddress
{
return $this->connection->getLocalAddress();
}

public function getRemoteAddress(): SocketAddress
{
return $this->connection->getRemoteAddress();
}

public function getTlsInfo(): ?TlsInfo
{
return $this->connection->getTlsInfo();
}

public function getCompletionPromise(): Promise
{
return $this->completionPromise;
}

public function withConnectionInfo(ConnectionInfo $connectionInfo): self
{
$clone = clone $this;
$clone->connection = $connectionInfo;

return $clone;
}

public function withPreviousResponse(?Response $previousResponse): self
{
$clone = clone $this;
Expand Down
18 changes: 0 additions & 18 deletions test/ClientHttpBinIntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -367,24 +367,6 @@ public function testInfiniteRedirect(): \Generator
yield $this->executeRequest(new Request("http://httpbin.org/redirect/11"));
}

public function testConnectionInfo(): \Generator
{
/** @var Response $response */
$response = yield $this->executeRequest(new Request("https://httpbin.org/get"));

$this->assertStringContainsString(":", $response->getLocalAddress());
$this->assertStringContainsString(":", $response->getRemoteAddress());
$this->assertNotNull($response->getTlsInfo());
$this->assertSame("TLSv1.2", $response->getTlsInfo()->getVersion());
$this->assertNotEmpty($response->getTlsInfo()->getPeerCertificates());
$this->assertContains("httpbin.org", $response->getTlsInfo()->getPeerCertificates()[0]->getNames());

foreach ($response->getTlsInfo()->getPeerCertificates() as $certificate) {
$this->assertGreaterThanOrEqual($certificate->getValidFrom(), \time(), "Failed for " . $certificate->getSubject()->getCommonName());
$this->assertLessThanOrEqual($certificate->getValidTo(), \time(), "Failed for " . $certificate->getSubject()->getCommonName());
}
}

public function testRequestCancellation(): \Generator
{
$this->givenSlowRawServerResponse(
Expand Down
3 changes: 1 addition & 2 deletions test/ParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace Amp\Http\Client;

use Amp\Http\Client\Connection\Connection;
use Amp\Http\Client\Connection\Http1Parser;
use PHPUnit\Framework\TestCase;

Expand All @@ -11,7 +10,7 @@ class ParserTest extends TestCase
public function testKeepAliveHeadResponseParse(): void
{
$request = "HTTP/1.1 200 OK\r\n\r\n";
$parser = new Http1Parser(new Request('/', 'HEAD'), $this->createMock(Connection::class));
$parser = new Http1Parser(new Request('/', 'HEAD'));
$response = $parser->parse($request);

$this->assertEquals(200, $response->getStatus());
Expand Down

0 comments on commit 7520500

Please sign in to comment.