<?php namespace React\Dns\Query; use React\EventLoop\LoopInterface; use React\Promise\Deferred; use React\Promise\CancellablePromiseInterface; use React\Promise\Timer; class TimeoutExecutor implements ExecutorInterface { private $executor; private $loop; private $timeout; public function __construct(ExecutorInterface $executor, $timeout, LoopInterface $loop) { $this->executor = $executor; $this->loop = $loop; $this->timeout = $timeout; } public function query($nameserver, Query $query) { return Timer\timeout($this->executor->query($nameserver, $query), $this->timeout, $this->loop)->then(null, function ($e) use ($query) { if ($e instanceof Timer\TimeoutException) { $e = new TimeoutException(sprintf("DNS query for %s timed out", $query->name), 0, $e); } throw $e; }); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
CachedExecutor.php | File | 1.48 KB | 0644 |
|
CancellationException.php | File | 93 B | 0644 |
|
Executor.php | File | 5.06 KB | 0644 |
|
ExecutorInterface.php | File | 121 B | 0644 |
|
HostsFileExecutor.php | File | 3 KB | 0644 |
|
Query.php | File | 344 B | 0644 |
|
RecordBag.php | File | 545 B | 0644 |
|
RecordCache.php | File | 2.03 KB | 0644 |
|
RetryExecutor.php | File | 1.15 KB | 0644 |
|
TimeoutException.php | File | 81 B | 0644 |
|
TimeoutExecutor.php | File | 913 B | 0644 |
|