Expand description
Implement a simple DNS resolver that relay request over Tor.
A resolver is created with bind_dns_resolver(), which opens a set of listener ports.
DnsProxy::run_dns_proxy then listens for
DNS requests, and sends back replies in response.
Structsยง
- DnsCache
Key ๐ - Identifier for a DNS request, composed of its source IP and transaction ID
- DnsIsolation
Key ๐ - A Key used to isolate dns requests.
- DnsProxy
- A DNS proxy server that can run indefinitely.
- DnsResponse
Target ๐ - Target for a DNS response
Constantsยง
- MAX_
DATAGRAM_ ๐SIZE - Maximum length for receiving a single datagram
Functionsยง
- bind_
dns_ resolver - Bind to a set of DNS ports, and return a new DnsProxy.
- do_
query ๐ - Run a DNS query over tor, returning either a list of answers, or a DNS error code.
- handle_
dns_ ๐req - Given a datagram containing a DNS query, resolve the query over the Tor network and send the response back.
- run_
dns_ ๐resolver_ with_ listeners - Inner task: Receive incoming DNS requests and process them.