1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
#![deny(unsafe_code)] //! Ekko is a simple utility for sending echo requests, giving you (mostly) everything you need. //! //! ## Example //! ```rust,no_run //! use ekko::{ error::{EkkoError}, //! EkkoResponse, //! Ekko, //! }; //! //! fn main() -> Result<(), EkkoError> { //! let mut ping = Ekko::with_target("rustup.rs")?; //! //! for hops in 1..32 { //! let response = ping.send(hops)?; //! //! match response { //! EkkoResponse::DestinationResponse(data) => { //! println!("DestinationResponse: {:#?}", data); //! break //! } //! //! EkkoResponse::UnreachableResponse((data, reason)) => { //! println!("UnreachableResponse: {:#?} | {:#?}", data, reason); //! continue //! } //! //! EkkoResponse::UnexpectedResponse((data, (t, c))) => { //! println!("UnexpectedResponse: ({}, {}), {:#?}", t, c, data); //! continue //! } //! //! EkkoResponse::ExceededResponse(data) => { //! println!("ExceededResponse: {:#?}", data); //! continue //! } //! //! EkkoResponse::LackingResponse(data) => { //! println!("LackingResponse: {:#?}", data); //! continue //! } //! } //! } //! //! Ok(()) //! } //! ``` mod responses; mod packets; mod sender; pub mod error; pub use sender::{Ekko}; pub use responses::{ EkkoResponse, EkkoData, Unreachable, UnreachableCodeV6, UnreachableCodeV4, };