mirror of https://github.com/ospab/ostp.git
Fix DNS server responses
This commit is contained in:
parent
3ced4a19b6
commit
10c1772271
|
|
@ -136,13 +136,17 @@ impl DnsPacket {
|
|||
qtype: rtype.clone(),
|
||||
qclass: 1, // IN
|
||||
}],
|
||||
answers: vec![DnsAnswer {
|
||||
name: name.to_string(),
|
||||
rtype,
|
||||
rclass: 1,
|
||||
ttl: 0, // No caching
|
||||
rdata,
|
||||
}],
|
||||
answers: if rdata.is_empty() {
|
||||
vec![]
|
||||
} else {
|
||||
vec![DnsAnswer {
|
||||
name: name.to_string(),
|
||||
rtype,
|
||||
rclass: 1,
|
||||
ttl: 0, // No caching
|
||||
rdata,
|
||||
}]
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -168,9 +168,17 @@ async fn handle_dns_query(
|
|||
if dns_req.questions.is_empty() { return; }
|
||||
let query = &dns_req.questions[0];
|
||||
|
||||
// Must be TXT query for our subdomain
|
||||
if query.qtype != DnsRecordType::TXT && query.qtype != DnsRecordType::NULL { return; }
|
||||
if !query.name.ends_with(&base_domain) { return; }
|
||||
if query.qtype != DnsRecordType::TXT && query.qtype != DnsRecordType::NULL {
|
||||
let resp = build_dns_response(&dns_req, &query.name, query.qtype.clone(), vec![]);
|
||||
let _ = socket.send_to(&resp, peer).await;
|
||||
return;
|
||||
}
|
||||
if !query.name.ends_with(&base_domain) {
|
||||
let mut resp = DnsPacket::new_response(dns_req.id, &query.name, query.qtype.clone(), vec![]);
|
||||
resp.flags = 0x8183; // NXDOMAIN
|
||||
let _ = socket.send_to(&resp.encode(), peer).await;
|
||||
return;
|
||||
}
|
||||
|
||||
// Strip base domain and labels separator to get base32 subdomain
|
||||
let subdomain = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue