Skip to content

Commit ded1ec3

Browse files
committed
Merge pull request #30 from clue-labs/compat
[RFC] Improve compatibility with legacy versions
2 parents 3fa027f + bd562b1 commit ded1ec3

7 files changed

Lines changed: 23 additions & 16 deletions

File tree

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
language: php
22

33
php:
4+
- 5.3
45
- 5.4
56
- 5.5
67
- 5.6

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
"keywords": ["dns", "dns-resolver"],
55
"license": "MIT",
66
"require": {
7-
"php": ">=5.4.0",
8-
"react/cache": "0.4.*",
9-
"react/socket": "0.4.*",
10-
"react/promise": "~2.0"
7+
"php": ">=5.3.0",
8+
"react/cache": "~0.4.0|~0.3.0",
9+
"react/socket": "~0.4.0|~0.3.0",
10+
"react/promise": "~2.0|~1.1"
1111
},
1212
"autoload": {
1313
"psr-4": { "React\\Dns\\": "src" }

src/Query/CachedExecutor.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@ public function __construct(ExecutorInterface $executor, RecordCache $cache)
1818

1919
public function query($nameserver, Query $query)
2020
{
21+
$that = $this;
2122
$executor = $this->executor;
2223
$cache = $this->cache;
2324

2425
return $this->cache
2526
->lookup($query)
2627
->then(
27-
function ($cachedRecords) use ($query) {
28-
return $this->buildResponse($query, $cachedRecords);
28+
function ($cachedRecords) use ($that, $query) {
29+
return $that->buildResponse($query, $cachedRecords);
2930
},
3031
function () use ($executor, $cache, $nameserver, $query) {
3132
return $executor

src/Query/Executor.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,15 @@ public function prepareRequest(Query $query)
4848

4949
public function doQuery($nameserver, $transport, $queryData, $name)
5050
{
51+
$that = $this;
5152
$parser = $this->parser;
5253
$loop = $this->loop;
5354

5455
$response = new Message();
5556
$deferred = new Deferred();
5657

57-
$retryWithTcp = function () use ($nameserver, $queryData, $name) {
58-
return $this->doQuery($nameserver, 'tcp', $queryData, $name);
58+
$retryWithTcp = function () use ($that, $nameserver, $queryData, $name) {
59+
return $that->doQuery($nameserver, 'tcp', $queryData, $name);
5960
};
6061

6162
$timer = $this->loop->addTimer($this->timeout, function () use (&$conn, $name, $deferred) {

src/Query/RetryExecutor.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public function query($nameserver, Query $query)
2626

2727
public function tryQuery($nameserver, Query $query, $retries, $deferred)
2828
{
29-
$errorback = function ($error) use ($nameserver, $query, $retries, $deferred) {
29+
$that = $this;
30+
$errorback = function ($error) use ($nameserver, $query, $retries, $deferred, $that) {
3031
if (!$error instanceof TimeoutException) {
3132
$deferred->reject($error);
3233
return;
@@ -40,7 +41,7 @@ public function tryQuery($nameserver, Query $query, $retries, $deferred)
4041
$deferred->reject($error);
4142
return;
4243
}
43-
$this->tryQuery($nameserver, $query, $retries-1, $deferred);
44+
$that->tryQuery($nameserver, $query, $retries-1, $deferred);
4445
};
4546

4647
$this->executor

src/Resolver/Resolver.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ public function __construct($nameserver, ExecutorInterface $executor)
2121
public function resolve($domain)
2222
{
2323
$query = new Query($domain, Message::TYPE_A, Message::CLASS_IN, time());
24+
$that = $this;
2425

2526
return $this->executor
2627
->query($this->nameserver, $query)
27-
->then(function (Message $response) use ($query) {
28-
return $this->extractAddress($query, $response);
28+
->then(function (Message $response) use ($query, $that) {
29+
return $that->extractAddress($query, $response);
2930
});
3031
}
3132

tests/Query/ExecutorTest.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,9 @@ public function resolveShouldCloseConnectionOnTimeout()
213213

214214
private function returnStandardResponse()
215215
{
216-
$callback = function ($data, $response) {
217-
$this->convertMessageToStandardResponse($response);
216+
$that = $this;
217+
$callback = function ($data, $response) use ($that) {
218+
$that->convertMessageToStandardResponse($response);
218219
return $response;
219220
};
220221

@@ -223,8 +224,9 @@ private function returnStandardResponse()
223224

224225
private function returnTruncatedResponse()
225226
{
226-
$callback = function ($data, $response) {
227-
$this->convertMessageToTruncatedResponse($response);
227+
$that = $this;
228+
$callback = function ($data, $response) use ($that) {
229+
$that->convertMessageToTruncatedResponse($response);
228230
return $response;
229231
};
230232

0 commit comments

Comments
 (0)