[][src]Crate extcap

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 Definitions

CtrlPipes

Control pipes

ExtcapResult

Extcap specific result