server: validate header

This commit is contained in:
Peter Cai 2021-04-03 21:25:57 +08:00
parent 3bcd677a27
commit 9f81a770d3
1 changed files with 9 additions and 0 deletions

View File

@ -143,6 +143,15 @@ impl Server {
}
fn extract_questions(msg: Message) -> Result<Vec<Question<ParsedDname>>, String> {
// Validate the header first
let header = msg.header();
if header.qr() {
return Err("Not a DNS query".to_string());
}
if !header.rd() {
return Err("Non-recursive queries are not supported".to_string());
}
let question_section = msg.question();
let questions: Vec<_> = question_section.collect();
if questions.len() == 0 {