Struct pcap_file::pcap::PcapWriter
source · pub struct PcapWriter<W: Write> { /* private fields */ }
Expand description
Writes a pcap to a writer.
Example
use std::fs::File;
use pcap_file::pcap::{PcapReader, PcapWriter};
let file_in = File::open("test.pcap").expect("Error opening file");
let mut pcap_reader = PcapReader::new(file_in).unwrap();
let file_out = File::create("out.pcap").expect("Error creating file out");
let mut pcap_writer = PcapWriter::new(file_out).expect("Error writing file");
// Read test.pcap
while let Some(pkt) = pcap_reader.next_packet() {
//Check if there is no error
let pkt = pkt.unwrap();
//Write each packet of test.pcap in out.pcap
pcap_writer.write_packet(&pkt).unwrap();
}
Implementations§
source§impl<W: Write> PcapWriter<W>
impl<W: Write> PcapWriter<W>
sourcepub fn new(writer: W) -> PcapResult<PcapWriter<W>>
pub fn new(writer: W) -> PcapResult<PcapWriter<W>>
Creates a new PcapWriter
from an existing writer.
Defaults to the native endianness of the CPU.
Writes this default global pcap header to the file:
ⓘ
PcapHeader {
version_major: 2,
version_minor: 4,
ts_correction: 0,
ts_accuracy: 0,
snaplen: 65535,
datalink: DataLink::ETHERNET,
ts_resolution: TsResolution::MicroSecond,
endianness: Endianness::Native
};
Errors
The writer can’t be written to.
sourcepub fn with_header(writer: W, header: PcapHeader) -> PcapResult<PcapWriter<W>>
pub fn with_header(writer: W, header: PcapHeader) -> PcapResult<PcapWriter<W>>
Creates a new PcapWriter
from an existing writer with a user defined PcapHeader
.
It also writes the pcap header to the file.
Errors
The writer can’t be written to.
sourcepub fn into_writer(self) -> W
pub fn into_writer(self) -> W
Consumes Self
, returning the wrapped writer.
sourcepub fn write_packet(&mut self, packet: &PcapPacket<'_>) -> PcapResult<usize>
pub fn write_packet(&mut self, packet: &PcapPacket<'_>) -> PcapResult<usize>
Writes a PcapPacket
.
sourcepub fn write_raw_packet(
&mut self,
packet: &RawPcapPacket<'_>
) -> PcapResult<usize>
pub fn write_raw_packet(
&mut self,
packet: &RawPcapPacket<'_>
) -> PcapResult<usize>
Writes a RawPcapPacket
.
sourcepub fn endianness(&self) -> Endianness
pub fn endianness(&self) -> Endianness
Returns the endianess used by the writer.
sourcepub fn snaplen(&self) -> u32
pub fn snaplen(&self) -> u32
Returns the snaplen used by the writer, i.e. an unsigned value indicating the maximum number of octets captured from each packet.
sourcepub fn ts_resolution(&self) -> TsResolution
pub fn ts_resolution(&self) -> TsResolution
Returns the timestamp resolution of the writer.