#[non_exhaustive]pub enum ImplicitBypass {
Broad,
WinInet,
CfNetwork,
Empty,
}Expand description
The destinations a resolver sends direct with no list entry naming them: the implicit
bypass set, held in BypassRules::implicit.
Each store’s own resolver has its own set, so a rule set read from a store carries that
store’s: an implicit bypass the resolver does not have is a destination this crate
reports direct while the machine sends it to the proxy. The WinInet and CfNetwork
columns are the machine’s answer, measured by handing the resolver a proxy and an
otherwise empty list and asking where each destination went; Empty is read off
GLib’s and KIO’s matchers, which consult the list and nothing else.
| Destination | Broad | WinInet | CfNetwork | Empty |
|---|---|---|---|---|
localhost (any case) | ✓ | ✓ | ✓ | |
loopback | ✓ | ✓ | ||
127.0.0.1, [::1] | ✓ | ✓ | ✓ | |
the rest of 127.0.0.0/8 | ✓ | |||
*.localhost, a trailing dot | ✓ | |||
169.254.0.0/16, [fe80::]/10 | ✓ | |||
| an IPv4-mapped spelling of a loopback address | ✓ |
HostPattern::SubtractImplicit (<-loopback>) subtracts whichever set is in force.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Broad
The loopback half of Chromium’s implicit rules (IsLocalhost, IPv4-mapped
loopback) and WinINet’s loopback name. The default, and what parse::no_proxy
carries: the environment variable has no single resolver to measure, and loopback
is the part of Chromium’s set a local proxy has no use for. Chromium’s link-local
ranges are left out: every no_proxy reader measured (Go, Python’s urllib, curl,
.NET, hyper-util) sends 169.254.0.0/16 and fe80::/10 to the proxy, and
169.254.169.254 is the cloud instance-metadata endpoint, which an inspecting proxy
is often there to see.
WinInet
WinINet’s, which parse::proxy_override and the
Windows store carry: the names localhost and loopback, the addresses
127.0.0.1 and ::1, and the link-local ranges. The same six Chromium records as
Windows’ own set.
CfNetwork
CFNetwork’s: the name localhost and the addresses 127.0.0.1 and ::1.
CFNetwork applies it only while the settings carry a bypass key, so the macOS and
iOS stores carry this set when the dictionary has an ExceptionsList array with at
least one element or ExcludeSimpleHostnames switched on, and
Empty otherwise, ExcludeSimpleHostnames set to 0 and an empty
array included. A Mac configured through System Settings has the array while its
list holds an entry; clearing the list leaves an empty one, which the system
settings call drops.
Empty
No implicit bypass: every destination is decided by the entries. GNOME’s
GSimpleProxyResolver and KDE’s KIO have none.