Some fixes.
This commit is contained in:
+23
-14
@@ -351,21 +351,30 @@ impl DnsTest {
|
|||||||
Ok(format!("NS records: {}", records.join(", ")))
|
Ok(format!("NS records: {}", records.join(", ")))
|
||||||
}
|
}
|
||||||
RecordType::CNAME => {
|
RecordType::CNAME => {
|
||||||
let lookup = resolver
|
match resolver.lookup(name.clone(), self.record_type).await {
|
||||||
.lookup(name.clone(), self.record_type)
|
Ok(lookup) => {
|
||||||
.await
|
let records: Vec<String> = lookup
|
||||||
.map_err(|e| format!("CNAME lookup failed: {}", e))?;
|
.iter()
|
||||||
let records: Vec<String> = lookup
|
.filter_map(|record| {
|
||||||
.iter()
|
if let RData::CNAME(cname) = record.clone().into_rdata() {
|
||||||
.filter_map(|record| {
|
Some(cname.to_string())
|
||||||
if let RData::CNAME(cname) = record.clone().into_rdata() {
|
} else {
|
||||||
Some(cname.to_string())
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
Ok(format!("CNAME records: {}", records.join(", ")))
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
// Check if this is just "no records found" which is normal for domains without CNAME
|
||||||
|
let error_str = e.to_string();
|
||||||
|
if error_str.contains("no record found") {
|
||||||
|
Ok("CNAME records: (none - domain is not an alias)".to_string())
|
||||||
} else {
|
} else {
|
||||||
None
|
Err(format!("CNAME lookup failed: {}", e))
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
.collect();
|
}
|
||||||
Ok(format!("CNAME records: {}", records.join(", ")))
|
|
||||||
}
|
}
|
||||||
RecordType::SOA => {
|
RecordType::SOA => {
|
||||||
let lookup = resolver
|
let lookup = resolver
|
||||||
@@ -418,7 +427,7 @@ impl DnsTest {
|
|||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
.map_err(|_| NetworkError::Timeout)?
|
.map_err(|_| NetworkError::Timeout)?
|
||||||
.map_err(|_: String| NetworkError::DnsResolution("System resolver failed".to_string()))?;
|
.map_err(|e: String| NetworkError::DnsResolution(e))?;
|
||||||
|
|
||||||
Ok(response)
|
Ok(response)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user