Skip to content

Commit 5566f21

Browse files
committed
Forward compatibility with EventLoop v1.0 and v0.5
1 parent ca68364 commit 5566f21

3 files changed

Lines changed: 11 additions & 8 deletions

File tree

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"require": {
77
"php": ">=5.3.0",
88
"react/cache": "~0.4.0|~0.3.0",
9+
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
910
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5 || ^0.4.4",
1011
"react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4.5",
1112
"react/promise": "~2.1|~1.2",

src/Query/Executor.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ public function doQuery($nameserver, $transport, $queryData, $name)
6060
$parser = $this->parser;
6161
$loop = $this->loop;
6262

63-
$deferred = new Deferred(function ($resolve, $reject) use (&$timer, &$conn, $name) {
63+
$deferred = new Deferred(function ($resolve, $reject) use (&$timer, $loop, &$conn, $name) {
6464
$reject(new CancellationException(sprintf('DNS query for %s has been cancelled', $name)));
6565

6666
if ($timer !== null) {
67-
$timer->cancel();
67+
$loop->cancelTimer($timer);
6868
}
6969
$conn->close();
7070
});
@@ -97,16 +97,16 @@ public function doQuery($nameserver, $transport, $queryData, $name)
9797
} catch (\Exception $e) {
9898
// both UDP and TCP failed => reject
9999
if ($timer !== null) {
100-
$timer->cancel();
100+
$loop->cancelTimer($timer);
101101
}
102102
$deferred->reject(new \RuntimeException('Unable to connect to DNS server: ' . $e->getMessage(), 0, $e));
103103

104104
return $deferred->promise();
105105
}
106106

107-
$conn->on('data', function ($data) use ($retryWithTcp, $conn, $parser, $transport, $deferred, $timer) {
107+
$conn->on('data', function ($data) use ($retryWithTcp, $conn, $parser, $transport, $deferred, $timer, $loop) {
108108
if ($timer !== null) {
109-
$timer->cancel();
109+
$loop->cancelTimer($timer);
110110
}
111111

112112
try {

tests/Query/ExecutorTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,16 +290,18 @@ public function resolveShouldCancelTimerWhenFullResponseIsReceived()
290290

291291

292292
$timer = $this->getMockBuilder('React\EventLoop\Timer\TimerInterface')->getMock();
293-
$timer
294-
->expects($this->once())
295-
->method('cancel');
296293

297294
$this->loop
298295
->expects($this->once())
299296
->method('addTimer')
300297
->with(5, $this->isInstanceOf('Closure'))
301298
->will($this->returnValue($timer));
302299

300+
$this->loop
301+
->expects($this->once())
302+
->method('cancelTimer')
303+
->with($timer);
304+
303305
$query = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN, 1345656451);
304306
$this->executor->query('8.8.8.8:53', $query, function () {}, function () {});
305307
}

0 commit comments

Comments
 (0)