Skip to content

Commit 99a5c98

Browse files
committed
[dns] Add Resolver\Factory::createCached
1 parent 41e5596 commit 99a5c98

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

Resolver/Factory.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace React\Dns\Resolver;
44

55
use React\Dns\Query\Executor;
6+
use React\Dns\Query\CachedExecutor;
7+
use React\Dns\Query\RecordCache;
68
use React\Dns\Protocol\Parser;
79
use React\Dns\Protocol\BinaryDumper;
810
use React\EventLoop\LoopInterface;
@@ -12,11 +14,29 @@ class Factory
1214
public function create($nameserver, LoopInterface $loop)
1315
{
1416
$nameserver = $this->addPortToServerIfMissing($nameserver);
15-
$executor = new Executor($loop, new Parser(), new BinaryDumper());
17+
$executor = $this->createExecutor($nameserver, $loop);
1618

1719
return new Resolver($nameserver, $executor);
1820
}
1921

22+
public function createCached($nameserver, LoopInterface $loop)
23+
{
24+
$nameserver = $this->addPortToServerIfMissing($nameserver);
25+
$executor = $this->createCachedExecutor($nameserver, $loop);
26+
27+
return new Resolver($nameserver, $executor);
28+
}
29+
30+
protected function createExecutor($nameserver, LoopInterface $loop)
31+
{
32+
return new Executor($loop, new Parser(), new BinaryDumper());
33+
}
34+
35+
protected function createCachedExecutor($nameserver, LoopInterface $loop)
36+
{
37+
return new CachedExecutor($this->createExecutor(), new RecordCache());
38+
}
39+
2040
protected function addPortToServerIfMissing($nameserver)
2141
{
2242
return false === strpos($nameserver, ':') ? "$nameserver:53" : $nameserver;

0 commit comments

Comments
 (0)