path

Build Status Build status Coverage Status master doc path License MIT Crates.io doc.rs

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

```rust use path::{Path, Identifier}; use std::net::{IpAddr, Ipv4Addr};

// Create a new Path for tracking u8 values as custom data let mut path :Path = 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 asserteq!(data.custom, None); asserteq!(data.packet_counter, 1); ```