Skip to content

Commit 4647d86

Browse files
authored
Merge pull request #51 from WyriHaximus-labs/fix-ucfirst-cname-filter-failure
Ensure we ignore the case of the answer
2 parents 1ae13fa + aaeaff5 commit 4647d86

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/Resolver/Resolver.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,9 @@ private function filterByType(array $answers, $type)
8585

8686
private function filterByField(array $answers, $field, $value)
8787
{
88+
$value = strtolower($value);
8889
return array_filter($answers, function ($answer) use ($field, $value) {
89-
return $value === $answer->$field;
90+
return $value === strtolower($answer->$field);
9091
});
9192
}
9293

tests/Resolver/ResolverTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,27 @@ public function resolveShouldQueryARecords()
3131
$resolver->resolve('igor.io')->then($this->expectCallableOnceWith('178.79.169.131'));
3232
}
3333

34+
/** @test */
35+
public function resolveShouldQueryARecordsAndIgnoreCase()
36+
{
37+
$executor = $this->createExecutorMock();
38+
$executor
39+
->expects($this->once())
40+
->method('query')
41+
->with($this->anything(), $this->isInstanceOf('React\Dns\Query\Query'))
42+
->will($this->returnCallback(function ($nameserver, $query) {
43+
$response = new Message();
44+
$response->header->set('qr', 1);
45+
$response->questions[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class);
46+
$response->answers[] = new Record('Blog.wyrihaximus.net', $query->type, $query->class, 3600, '178.79.169.131');
47+
48+
return Promise\resolve($response);
49+
}));
50+
51+
$resolver = new Resolver('8.8.8.8:53', $executor);
52+
$resolver->resolve('blog.wyrihaximus.net')->then($this->expectCallableOnceWith('178.79.169.131'));
53+
}
54+
3455
/** @test */
3556
public function resolveShouldFilterByName()
3657
{

0 commit comments

Comments
 (0)