Expand description
This crate helps writing extcap plugins for Wireshark.
See Extcap: Developer Guide also.
§Quick Example
use extcap::{Extcap, ExtcapListener, ExtcapResult, ExtcapWriter, IFace};
use pcap_file::{pcap::PcapHeader, DataLink, PcapWriter};
struct HelloDump {}
impl ExtcapListener for HelloDump {
fn capture_header(&mut self, extcap: &Extcap, ifc: &IFace) -> PcapHeader {
PcapHeader { datalink: DataLink::USER10, ..Default::default() }
}
fn capture(&mut self, extcap: &Extcap, ifc: &IFace, mut pcap_writer: PcapWriter<ExtcapWriter>) -> ExtcapResult<()> {
let pkt = b"Hello Extcap!";
pcap_writer.write(0, 0, pkt, pkt.len() as u32);
Ok(())
}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut ex = Extcap::new("hellodump");
ex.add_interface(IFace::new("helloif"));
ex.run(HelloDump {});
Ok(())
}
More examples can be found in the examples
directory
Structs§
- Control
- Control representation
- Control
Msg - Control protocol message
- Control
Val - Control value representation
- Extcap
- Exctcap representation
- Extcap
Error - Extcap specific error
- IFace
- Interface representation
- IfArg
- Argument representation
- IfArg
Val - Argument value representation
Enums§
- Button
Role - Button roles
- Control
Cmd - Interface toolbar Control commands
- Control
Type - Interface toolbar Control types
- Extcap
Step - Extcap steps
- Extcap
Writer - Possible writers for
PcapWriter
- IfArg
Type - Extcap Argument types
Traits§
- Extcap
Listener - A trait for Extcap callbacks
Type Aliases§
- Ctrl
Pipes - Control pipes
- Extcap
Receiver - Packet receiver for async-api
- Extcap
Result - Extcap specific result