Skip to content

Commit 9f38d49

Browse files
authored
Merge pull request #136 from clue-labs/record-ctor
Mark all Record attributes as required, add documentation vs Query
2 parents 9f5bf59 + 86e4ea8 commit 9f38d49

File tree

4 files changed

+39
-10
lines changed

4 files changed

+39
-10
lines changed

src/Model/Record.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
namespace React\Dns\Model;
44

5+
/**
6+
* This class represents a single resulting record in a response message
7+
*
8+
* It uses a structure similar to `\React\Dns\Query\Query`, but does include
9+
* fields for resulting TTL and resulting record data (IPs etc.).
10+
*
11+
* @link https://tools.ietf.org/html/rfc1035#section-4.1.3
12+
* @see \React\Dns\Query\Query
13+
*/
514
class Record
615
{
716
/**
@@ -94,7 +103,7 @@ class Record
94103
* @param int $ttl
95104
* @param string|string[]|array $data
96105
*/
97-
public function __construct($name, $type, $class, $ttl = 0, $data = null)
106+
public function __construct($name, $type, $class, $ttl, $data)
98107
{
99108
$this->name = $name;
100109
$this->type = $type;

src/Query/Query.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,30 @@
22

33
namespace React\Dns\Query;
44

5+
/**
6+
* This class represents a single question in a query/response message
7+
*
8+
* It uses a structure similar to `\React\Dns\Message\Record`, but does not
9+
* contain fields for resulting TTL and resulting record data (IPs etc.).
10+
*
11+
* @link https://tools.ietf.org/html/rfc1035#section-4.1.2
12+
* @see \React\Dns\Message\Record
13+
*/
514
class Query
615
{
16+
/**
17+
* @var string query name, i.e. hostname to look up
18+
*/
719
public $name;
20+
21+
/**
22+
* @var int query type (aka QTYPE), see Message::TYPE_* constants
23+
*/
824
public $type;
25+
26+
/**
27+
* @var int query class (aka QCLASS), see Message::CLASS_IN constant
28+
*/
929
public $class;
1030

1131
/**

tests/Query/RetryExecutorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ protected function createStandardResponse()
340340
{
341341
$response = new Message();
342342
$response->qr = true;
343-
$response->questions[] = new Record('igor.io', Message::TYPE_A, Message::CLASS_IN);
343+
$response->questions[] = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN);
344344
$response->answers[] = new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131');
345345

346346
return $response;

tests/Resolver/ResolverTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function resolveShouldQueryARecords()
2323
->will($this->returnCallback(function ($query) {
2424
$response = new Message();
2525
$response->qr = true;
26-
$response->questions[] = new Record($query->name, $query->type, $query->class);
26+
$response->questions[] = new Query($query->name, $query->type, $query->class);
2727
$response->answers[] = new Record($query->name, $query->type, $query->class, 3600, '178.79.169.131');
2828

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

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

@@ -87,7 +87,7 @@ public function resolveAllShouldReturnMultipleValuesForAlias()
8787
->will($this->returnCallback(function ($query) {
8888
$response = new Message();
8989
$response->qr = true;
90-
$response->questions[] = new Record($query->name, $query->type, $query->class);
90+
$response->questions[] = new Query($query->name, $query->type, $query->class);
9191
$response->answers[] = new Record($query->name, Message::TYPE_CNAME, $query->class, 3600, 'example.com');
9292
$response->answers[] = new Record('example.com', $query->type, $query->class, 3600, '::1');
9393
$response->answers[] = new Record('example.com', $query->type, $query->class, 3600, '::2');
@@ -112,7 +112,7 @@ public function resolveShouldQueryARecordsAndIgnoreCase()
112112
->will($this->returnCallback(function ($query) {
113113
$response = new Message();
114114
$response->qr = true;
115-
$response->questions[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class);
115+
$response->questions[] = new Query('Blog.wyrihaximus.net', $query->type, $query->class);
116116
$response->answers[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class, 3600, '178.79.169.131');
117117

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

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

163163
return Promise\resolve($response);
164164
}));
@@ -216,7 +216,7 @@ public function resolveWithRcodeErrorShouldCallErrbackIfGiven($code, $expectedMe
216216
$response = new Message();
217217
$response->qr = true;
218218
$response->rcode = $code;
219-
$response->questions[] = new Record($query->name, $query->type, $query->class);
219+
$response->questions[] = new Query($query->name, $query->type, $query->class);
220220

221221
return Promise\resolve($response);
222222
}));

0 commit comments

Comments
 (0)