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 representation
Control protocol message
Control value representation
Exctcap representation
Extcap specific error
Interface representation
Argument representation
Argument value representation
Enums
Button roles
Interface toolbar Control commands
Interface toolbar Control types
Extcap steps
Possible writers for PcapWriter
Extcap Argument types
Traits
A trait for Extcap callbacks
Type Definitions
Control pipes
Packet receiver for async-api
Extcap specific result