Fixed 0x20 encoding in cache.
This commit is contained in:
+9
-5
@@ -109,17 +109,21 @@ impl DnsResolver for ForwardingDnsResolver {
|
|||||||
Ok(mut result) => {
|
Ok(mut result) => {
|
||||||
let elapsed = start.elapsed().as_secs_f64() * 1000.0;
|
let elapsed = start.elapsed().as_secs_f64() * 1000.0;
|
||||||
self.context.forwarder_tracker.record_success(upstream, elapsed);
|
self.context.forwarder_tracker.record_success(upstream, elapsed);
|
||||||
self.context.cache.store(&result.answers)?;
|
|
||||||
|
|
||||||
// Fix domain names in answers to match original query case
|
// Fix domain names to match original query case before caching
|
||||||
let qname_lower = qname.to_lowercase();
|
let qname_lower = qname.to_lowercase();
|
||||||
for answer in &mut result.answers {
|
for rec in result.answers.iter_mut()
|
||||||
if let Some(domain) = answer.get_domain() {
|
.chain(result.authorities.iter_mut())
|
||||||
|
.chain(result.resources.iter_mut())
|
||||||
|
{
|
||||||
|
if let Some(domain) = rec.get_domain() {
|
||||||
if domain.to_lowercase() == qname_lower {
|
if domain.to_lowercase() == qname_lower {
|
||||||
answer.set_domain(qname.to_string());
|
rec.set_domain(qname.to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.context.cache.store(&result.answers)?;
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user