pub struct HttpPortFilter {
pub source_ports: Vec<u16>,
pub destination_ports: Vec<u16>,
pub source_ranges: Vec<(u16, u16)>,
pub destination_ranges: Vec<(u16, u16)>,
pub match_any: bool,
}Expand description
Port filter configuration
Filters packets based on TCP source and/or destination ports. Supports individual ports, ranges, and lists.
§Examples
use huginn_net_http::PortFilter;
// Single port
let filter = PortFilter::new().destination(443);
// Multiple ports
let filter = PortFilter::new().destination_list(vec![80, 443, 8080]);
// Port range
let filter = PortFilter::new().destination_range(8000..9000);Fields§
§source_ports: Vec<u16>Source ports to match
destination_ports: Vec<u16>Destination ports to match
source_ranges: Vec<(u16, u16)>Source port ranges (inclusive)
destination_ranges: Vec<(u16, u16)>Destination port ranges (inclusive)
match_any: boolMatch ANY port (source OR destination)?
Implementations§
Source§impl PortFilter
impl PortFilter
Sourcepub fn new() -> PortFilter
pub fn new() -> PortFilter
Create a new empty port filter
Sourcepub fn destination(self, port: u16) -> PortFilter
pub fn destination(self, port: u16) -> PortFilter
Add a destination port
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().destination(443);Sourcepub fn source(self, port: u16) -> PortFilter
pub fn source(self, port: u16) -> PortFilter
Add a source port
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().source(12345);Sourcepub fn destination_range(self, range: Range<u16>) -> PortFilter
pub fn destination_range(self, range: Range<u16>) -> PortFilter
Add a destination port range (inclusive)
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().destination_range(8000..9000);
// Matches ports 8000 through 8999Sourcepub fn source_range(self, range: Range<u16>) -> PortFilter
pub fn source_range(self, range: Range<u16>) -> PortFilter
Add a source port range (inclusive)
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().source_range(10000..20000);
// Matches ports 10000 through 19999Sourcepub fn destination_list(self, ports: Vec<u16>) -> PortFilter
pub fn destination_list(self, ports: Vec<u16>) -> PortFilter
Add multiple destination ports
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().destination_list(vec![80, 443, 8080, 8443]);Sourcepub fn source_list(self, ports: Vec<u16>) -> PortFilter
pub fn source_list(self, ports: Vec<u16>) -> PortFilter
Add multiple source ports
§Examples
use huginn_net_http::PortFilter;
let filter = PortFilter::new().source_list(vec![12345, 54321, 9999]);Sourcepub fn any_port(self) -> PortFilter
pub fn any_port(self) -> PortFilter
Match if ANY port matches (source OR destination)
By default, all specified filters must match. With match_any(),
the packet passes if either source OR destination matches.
Trait Implementations§
Source§impl Clone for PortFilter
impl Clone for PortFilter
Source§fn clone(&self) -> PortFilter
fn clone(&self) -> PortFilter
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PortFilter
impl Debug for PortFilter
Source§impl Default for PortFilter
impl Default for PortFilter
Source§fn default() -> PortFilter
fn default() -> PortFilter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PortFilter
impl RefUnwindSafe for PortFilter
impl Send for PortFilter
impl Sync for PortFilter
impl Unpin for PortFilter
impl UnwindSafe for PortFilter
Blanket Implementations§
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