Skip to content

Commit

Permalink
Merge pull request #136 from clue-labs/record-ctor
Browse files Browse the repository at this point in the history
Mark all Record attributes as required, add documentation vs Query
  • Loading branch information
jsor authored Jul 11, 2019
2 parents 9f5bf59 + 86e4ea8 commit 9f38d49
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 10 deletions.
11 changes: 10 additions & 1 deletion src/Model/Record.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

namespace React\Dns\Model;

/**
* This class represents a single resulting record in a response message
*
* It uses a structure similar to `\React\Dns\Query\Query`, but does include
* fields for resulting TTL and resulting record data (IPs etc.).
*
* @link https://tools.ietf.org/html/rfc1035#section-4.1.3
* @see \React\Dns\Query\Query
*/
class Record
{
/**
Expand Down Expand Up @@ -94,7 +103,7 @@ class Record
* @param int $ttl
* @param string|string[]|array $data
*/
public function __construct($name, $type, $class, $ttl = 0, $data = null)
public function __construct($name, $type, $class, $ttl, $data)
{
$this->name = $name;
$this->type = $type;
Expand Down
20 changes: 20 additions & 0 deletions src/Query/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,30 @@

namespace React\Dns\Query;

/**
* This class represents a single question in a query/response message
*
* It uses a structure similar to `\React\Dns\Message\Record`, but does not
* contain fields for resulting TTL and resulting record data (IPs etc.).
*
* @link https://tools.ietf.org/html/rfc1035#section-4.1.2
* @see \React\Dns\Message\Record
*/
class Query
{
/**
* @var string query name, i.e. hostname to look up
*/
public $name;

/**
* @var int query type (aka QTYPE), see Message::TYPE_* constants
*/
public $type;

/**
* @var int query class (aka QCLASS), see Message::CLASS_IN constant
*/
public $class;

/**
Expand Down
2 changes: 1 addition & 1 deletion tests/Query/RetryExecutorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ protected function createStandardResponse()
{
$response = new Message();
$response->qr = true;
$response->questions[] = new Record('igor.io', Message::TYPE_A, Message::CLASS_IN);
$response->questions[] = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN);
$response->answers[] = new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131');

return $response;
Expand Down
16 changes: 8 additions & 8 deletions tests/Resolver/ResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function resolveShouldQueryARecords()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);
$response->answers[] = new Record($query->name, $query->type, $query->class, 3600, '178.79.169.131');

return Promise\resolve($response);
Expand All @@ -44,7 +44,7 @@ public function resolveAllShouldQueryGivenRecords()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);
$response->answers[] = new Record($query->name, $query->type, $query->class, 3600, '::1');

return Promise\resolve($response);
Expand All @@ -65,7 +65,7 @@ public function resolveAllShouldIgnoreRecordsWithOtherTypes()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);
$response->answers[] = new Record($query->name, Message::TYPE_TXT, $query->class, 3600, array('ignored'));
$response->answers[] = new Record($query->name, $query->type, $query->class, 3600, '::1');

Expand All @@ -87,7 +87,7 @@ public function resolveAllShouldReturnMultipleValuesForAlias()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);
$response->answers[] = new Record($query->name, Message::TYPE_CNAME, $query->class, 3600, 'example.com');
$response->answers[] = new Record('example.com', $query->type, $query->class, 3600, '::1');
$response->answers[] = new Record('example.com', $query->type, $query->class, 3600, '::2');
Expand All @@ -112,7 +112,7 @@ public function resolveShouldQueryARecordsAndIgnoreCase()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class);
$response->questions[] = new Query('Blog.wyrihaximus.net', $query->type, $query->class);
$response->answers[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class, 3600, '178.79.169.131');

return Promise\resolve($response);
Expand All @@ -133,7 +133,7 @@ public function resolveShouldFilterByName()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);
$response->answers[] = new Record('foo.bar', $query->type, $query->class, 3600, '178.79.169.131');

return Promise\resolve($response);
Expand All @@ -158,7 +158,7 @@ public function resolveWithNoAnswersShouldCallErrbackIfGiven()
->will($this->returnCallback(function ($query) {
$response = new Message();
$response->qr = true;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);

return Promise\resolve($response);
}));
Expand Down Expand Up @@ -216,7 +216,7 @@ public function resolveWithRcodeErrorShouldCallErrbackIfGiven($code, $expectedMe
$response = new Message();
$response->qr = true;
$response->rcode = $code;
$response->questions[] = new Record($query->name, $query->type, $query->class);
$response->questions[] = new Query($query->name, $query->type, $query->class);

return Promise\resolve($response);
}));
Expand Down

0 comments on commit 9f38d49

Please sign in to comment.