Struct dns_parser::Builder
[−]
[src]
pub struct Builder {
// some fields omitted
}Allows to build a DNS packet
Both query and answer packets may be built with this interface, although, much of functionality is not implemented yet.
Methods
impl Builder[src]
fn new_query(id: u16, recursion: bool) -> Builder
Creates a new query
Initially all sections are empty. You're expected to fill
the questions section with add_question
fn add_question(&mut self, qname: &str, qtype: QueryType, qclass: QueryClass) -> &mut Builder
Adds a question to the packet
Panics
- Answers, nameservers or additional section has already been written
- There are already 65535 questions in the buffer.
- When name is invalid
fn build(self) -> Result<Vec<u8>, Vec<u8>>
Returns the final packet
When packet is not truncated method returns Ok(packet). If
packet is truncated the method returns Err(packet). In both
cases the packet is fully valid.
In the server implementation you may use
x.build().unwrap_or_else(|x| x).
In the client implementation it's probably unwise to send truncated packet, as it doesn't make sense. Even panicking may be more appropriate.