60 lines
1.6 KiB
PHP
Executable File
60 lines
1.6 KiB
PHP
Executable File
<?php
|
|
|
|
namespace React\Dns\Query;
|
|
|
|
use React\Dns\Model\Message;
|
|
|
|
/**
|
|
* @deprecated unused, exists for BC only
|
|
* @see CachingExecutor
|
|
*/
|
|
class CachedExecutor implements ExecutorInterface
|
|
{
|
|
private $executor;
|
|
private $cache;
|
|
|
|
public function __construct(ExecutorInterface $executor, RecordCache $cache)
|
|
{
|
|
$this->executor = $executor;
|
|
$this->cache = $cache;
|
|
}
|
|
|
|
public function query($nameserver, Query $query)
|
|
{
|
|
$executor = $this->executor;
|
|
$cache = $this->cache;
|
|
|
|
return $this->cache
|
|
->lookup($query)
|
|
->then(
|
|
function ($cachedRecords) use ($query) {
|
|
return Message::createResponseWithAnswersForQuery($query, $cachedRecords);
|
|
},
|
|
function () use ($executor, $cache, $nameserver, $query) {
|
|
return $executor
|
|
->query($nameserver, $query)
|
|
->then(function ($response) use ($cache, $query) {
|
|
$cache->storeResponseMessage($query->currentTime, $response);
|
|
return $response;
|
|
});
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @deprecated unused, exists for BC only
|
|
*/
|
|
public function buildResponse(Query $query, array $cachedRecords)
|
|
{
|
|
return Message::createResponseWithAnswersForQuery($query, $cachedRecords);
|
|
}
|
|
|
|
/**
|
|
* @deprecated unused, exists for BC only
|
|
*/
|
|
protected function generateId()
|
|
{
|
|
return mt_rand(0, 0xffff);
|
|
}
|
|
}
|