Struct ConnectUdpRules
pub struct ConnectUdpRules { /* private fields */ }Available on crate feature
masque only.Expand description
An ordered list of ConnectUdpRules: the first matching rule decides, and a
destination no rule matches gets the default action.
The rules judge the resolved address and, separately, every IPv4 address it carries
(ConnectUdpDestination::embedded); each must be allowed. So denying 8.8.8.8/32 also
denies its NAT64 form 64:ff9b::808:808, and allowing that form takes rules allowing
both 64:ff9b::/96 and 8.8.8.8/32.
Combine it with the address scope checks as a tuple, so both must allow:
(DestinationScopePolicy::new(), rules).
Implementations§
§impl ConnectUdpRules
impl ConnectUdpRules
pub const fn new(default: ConnectUdpAction) -> ConnectUdpRules
pub const fn new(default: ConnectUdpAction) -> ConnectUdpRules
Rules ending in default for destinations none of them match.
pub fn with_rule(self, rule: ConnectUdpRule) -> ConnectUdpRules
pub fn with_rule(self, rule: ConnectUdpRule) -> ConnectUdpRules
Append a rule, judged after the ones already added.
pub fn set_rule(&mut self, rule: ConnectUdpRule) -> &mut ConnectUdpRules
pub fn set_rule(&mut self, rule: ConnectUdpRule) -> &mut ConnectUdpRules
Append a rule, judged after the ones already added.
Trait Implementations§
§impl Clone for ConnectUdpRules
impl Clone for ConnectUdpRules
§fn clone(&self) -> ConnectUdpRules
fn clone(&self) -> ConnectUdpRules
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl ConnectUdpPolicy for ConnectUdpRules
impl ConnectUdpPolicy for ConnectUdpRules
§fn allows(&self, destination: &ConnectUdpDestination<'_>) -> bool
fn allows(&self, destination: &ConnectUdpDestination<'_>) -> bool
Whether the tunnel may send to
destination.Auto Trait Implementations§
impl Freeze for ConnectUdpRules
impl RefUnwindSafe for ConnectUdpRules
impl Send for ConnectUdpRules
impl Sync for ConnectUdpRules
impl Unpin for ConnectUdpRules
impl UnsafeUnpin for ConnectUdpRules
impl UnwindSafe for ConnectUdpRules
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more