Fixed inadequate response packet lengths and made proper CNAME resolution.

This commit is contained in:
Revertron
2021-09-12 13:03:10 +02:00
parent 2b57d07da5
commit 7b79f86e17
3 changed files with 37 additions and 22 deletions
+20 -5
View File
@@ -810,19 +810,34 @@ impl DnsPacket {
None
}
pub fn get_unresolved_cnames(&self) -> Vec<DnsRecord> {
pub fn get_unresolved_cnames(&self, qtype: QueryType) -> Vec<DnsRecord> {
let mut unresolved = Vec::new();
for answer in &self.answers {
let mut matched = false;
if let DnsRecord::CNAME { ref host, .. } = *answer {
for answer2 in &self.answers {
if let DnsRecord::A { ref domain, .. } = *answer2 {
if domain == host {
matched = true;
break;
match qtype {
QueryType::A => {
if let DnsRecord::A { ref domain, .. } = *answer2 {
if domain == host {
matched = true;
break;
}
}
}
QueryType::AAAA => {
if let DnsRecord::AAAA { ref domain, .. } = *answer2 {
if domain == host {
matched = true;
break;
}
}
}
_ => {}
}
}
} else {
continue;
}
if !matched {