Crate extcap

Source
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
ControlMsg
Control protocol message
ControlVal
Control value representation
Extcap
Exctcap representation
ExtcapError
Extcap specific error
IFace
Interface representation
IfArg
Argument representation
IfArgVal
Argument value representation

Enums§

ButtonRole
Button roles
ControlCmd
Interface toolbar Control commands
ControlType
Interface toolbar Control types
ExtcapStep
Extcap steps
ExtcapWriter
Possible writers for PcapWriter
IfArgType
Extcap Argument types

Traits§

ExtcapListener
A trait for Extcap callbacks

Type Aliases§

CtrlPipes
Control pipes
ExtcapReceiver
Packet receiver for async-api
ExtcapResult
Extcap specific result