Struct tor_netdoc::types::policy::PortPolicy
source · [−]pub struct PortPolicy { /* private fields */ }
Expand description
A policy to match zero or more TCP/UDP ports.
These are used in Tor to summarize all policies in microdescriptors, and Ipv6 policies in router descriptors.
NOTE: If a port is listed as accepted, it doesn’t mean that the relay allows every address on that port. Instead, a port is listed if a relay will exit to most public addresses on that port. Therefore, unlike super::addrpolicy::AddrPolicy objects, these policies cannot tell you if a port is definitely allowed or rejected: only if it is probably allowed or rejected.
Examples
use tor_netdoc::types::policy::PortPolicy;
let policy: PortPolicy = "accept 1-1023,8000-8999,60000-65535".parse().unwrap();
assert!(policy.allows_port(22));
assert!(policy.allows_port(8000));
assert!(! policy.allows_port(1024));
assert!(! policy.allows_port(9000));
Implementations
sourceimpl PortPolicy
impl PortPolicy
sourcepub fn new_reject_all() -> Self
pub fn new_reject_all() -> Self
Return a new PortPolicy that rejects all ports.
sourcepub fn allows_port(&self, port: u16) -> bool
pub fn allows_port(&self, port: u16) -> bool
Return true iff port
is allowed by this policy.
sourcepub fn intern(self) -> Arc<Self>
pub fn intern(self) -> Arc<Self>
Replace this PortPolicy with an interned copy, to save memory.
sourcepub fn allows_some_port(&self) -> bool
pub fn allows_some_port(&self) -> bool
Return true if this policy allows any ports at all.
Example
use tor_netdoc::types::policy::PortPolicy;
let policy: PortPolicy = "accept 22".parse().unwrap();
assert!(policy.allows_some_port());
let policy2: PortPolicy = "reject 1-65535".parse().unwrap();
assert!(! policy2.allows_some_port());
Trait Implementations
sourceimpl Clone for PortPolicy
impl Clone for PortPolicy
sourcefn clone(&self) -> PortPolicy
fn clone(&self) -> PortPolicy
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for PortPolicy
impl Debug for PortPolicy
sourceimpl Display for PortPolicy
impl Display for PortPolicy
sourceimpl FromStr for PortPolicy
impl FromStr for PortPolicy
type Err = PolicyError
type Err = PolicyError
The associated error which can be returned from parsing.
sourceimpl Hash for PortPolicy
impl Hash for PortPolicy
sourceimpl PartialEq<PortPolicy> for PortPolicy
impl PartialEq<PortPolicy> for PortPolicy
sourcefn eq(&self, other: &PortPolicy) -> bool
fn eq(&self, other: &PortPolicy) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PortPolicy) -> bool
fn ne(&self, other: &PortPolicy) -> bool
This method tests for !=
.
impl Eq for PortPolicy
impl StructuralEq for PortPolicy
impl StructuralPartialEq for PortPolicy
Auto Trait Implementations
impl RefUnwindSafe for PortPolicy
impl Send for PortPolicy
impl Sync for PortPolicy
impl Unpin for PortPolicy
impl UnwindSafe for PortPolicy
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more