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.
Trait Implementations§
Auto Trait Implementations§
impl<W> Freeze for PcapWriter<W>where
W: Freeze,
impl<W> RefUnwindSafe for PcapWriter<W>where
W: RefUnwindSafe,
impl<W> Send for PcapWriter<W>where
W: Send,
impl<W> Sync for PcapWriter<W>where
W: Sync,
impl<W> Unpin for PcapWriter<W>where
W: Unpin,
impl<W> UnwindSafe for PcapWriter<W>where
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more