summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-10-01 10:13:40 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-10-03 15:53:55 +0200
commit72364332cb98f20fbd6d5e6e43e2a59ddf9d0fdf (patch)
treeb6d28e9ec86201d72c155061e0bb25e0a25e608d
parent6d197524e3a08d937166849583792681e608bbd1 (diff)
downloadmullvadvpn-72364332cb98f20fbd6d5e6e43e2a59ddf9d0fdf.tar.xz
mullvadvpn-72364332cb98f20fbd6d5e6e43e2a59ddf9d0fdf.zip
Add documentation for resolver module
-rw-r--r--talpid-core/src/resolver.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/talpid-core/src/resolver.rs b/talpid-core/src/resolver.rs
index 9fcada1a0b..0d07888877 100644
--- a/talpid-core/src/resolver.rs
+++ b/talpid-core/src/resolver.rs
@@ -1,3 +1,9 @@
+//! This module implements a forwarding DNS resolver with two states:
+//! * In the `Blocked` state, most queries receive an empty response, but certain captive portal
+//! domains receive a spoofed answer. This fools the OS into thinking that it has connectivity.
+//! * In the `Forwarding` state, queries are forwarded to a set of configured DNS servers. This
+//! lets us use the routing table to determine where to send them, instead of them being forced
+//! out on the primary interface (in some cases).
use std::{
io,
net::{IpAddr, Ipv4Addr, SocketAddr},