Skip to main content

ImplicitBypass

Enum ImplicitBypass 

Source
#[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.

DestinationBroadWinInetCfNetworkEmpty
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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

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.

Trait Implementations§

Source§

impl Clone for ImplicitBypass

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ImplicitBypass

Source§

impl Debug for ImplicitBypass

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ImplicitBypass

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for ImplicitBypass

Source§

impl Hash for ImplicitBypass

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ImplicitBypass

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ImplicitBypass

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more