Skip to content

Commit fc2b914

Browse files
authored
Merge pull request #11 from clue-labs/eventloop
Forward compatibility with stable EventLoop 1.0 and 0.5
2 parents 1861cf3 + f40accd commit fc2b914

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
},
1616
"require": {
1717
"php": ">=5.3",
18-
"clue/multicast-react": "~1.0|~0.2.0",
19-
"react/event-loop": "~0.4.0|~0.3.0",
18+
"clue/multicast-react": "^1.0 || ^0.2",
2019
"react/dns": "~0.4.0|~0.3.0",
20+
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3",
2121
"react/promise": "^2.1 || ^1.2.1"
2222
},
2323
"require-dev": {

src/MulticastExecutor.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ public function doQuery($nameserver, $queryData, $name)
7272
$parser = $this->parser;
7373
$loop = $this->loop;
7474

75-
$deferred = new Deferred(function ($_, $reject) use (&$conn, &$timer, $name) {
75+
$deferred = new Deferred(function ($_, $reject) use (&$conn, &$timer, $loop, $name) {
7676
$conn->close();
77-
$timer->cancel();
77+
$loop->cancelTimer($timer);
7878

7979
$reject(new \RuntimeException(sprintf("DNS query for %s cancelled", $name)));
8080
});
@@ -86,12 +86,12 @@ public function doQuery($nameserver, $queryData, $name)
8686

8787
$conn = $this->factory->createSender();
8888

89-
$conn->on('message', function ($data) use ($conn, $parser, $deferred, $timer) {
89+
$conn->on('message', function ($data) use ($conn, $parser, $deferred, $timer, $loop) {
9090
$response = new Message();
9191
$responseReady = $parser->parseChunk($data, $response);
9292

9393
$conn->close();
94-
$timer->cancel();
94+
$loop->cancelTimer($timer);
9595

9696
if (!$responseReady) {
9797
$deferred->reject(new BadServerException('Invalid response received'));

tests/MulticastExecutorTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,13 @@ public function testCancellingPromiseWillCloseSocketAndReject()
4747
$socket->expects($this->once())->method('send')->with($this->equalTo('message'), $this->equalTo($this->nameserver));
4848
$this->sockets->expects($this->once())->method('createSender')->will($this->returnValue($socket));
4949

50-
$timer = $this->getMockBuilder('React\EventLoop\Timer\TimerInterface')->getMock();
51-
$timer->expects($this->once())->method('cancel');
50+
// prefer newer EventLoop 1.0/0.5+ TimerInterface or fall back to legacy namespace
51+
$timer = $this->getMockBuilder(
52+
interface_exists('React\EventLoop\TimerInterface') ? 'React\EventLoop\TimerInterface' : 'React\EventLoop\Timer\TimerInterface'
53+
)->getMock();
54+
5255
$this->loop->expects($this->once())->method('addTimer')->willReturn($timer);
56+
$this->loop->expects($this->once())->method('cancelTimer')->with($timer);
5357

5458
$this->dumper->expects($this->once())->method('toBinary')->will($this->returnValue('message'));
5559

0 commit comments

Comments
 (0)