Crate path [−] [src]
IP based connection identification and
tracing
This crate is highly inspired by the netfilter project, which provides connection tracking for TCP/IP based protocols. The timeout of a connection (per default 10 minutes) is handled completely internally by using the time crate.
Example usage
use path::{Path, Identifier}; use std::net::{IpAddr, Ipv4Addr}; // Create a new `Path` for tracking `u8` values as custom data let mut path :Path<u8, u8> = Path::new(); // Build up a new identifier from IP Addresses, their ports, and a key (in this case the IP Protocol) let identifier = Identifier::new(IpAddr::V4(Ipv4Addr::new(10, 0, 0, 1)), 1234, IpAddr::V4(Ipv4Addr::new(10, 0, 0, 2)), 443, 6); // Do the actual work let data = path.track(&identifier).unwrap(); // Now it is possible to set/get the custom data assert_eq!(data.custom, None); assert_eq!(data.packet_counter, 1);
Modules
error |
Basic error handling mechanisms |
Structs
Connection |
Connection representation |
Data |
Identifies the connection |
Identifier |
Identifies the connection |
Path |
Global connection tracking structure |
Subscriber |
Identifies the connection endpoints |