packet_builder/
payload.rs1use std::net::Ipv4Addr;
2use L4Checksum;
3
4impl <'p>L4Checksum for PayloadData<'p> {
5 fn checksum_ipv4(&mut self, _source: &Ipv4Addr, _destination: &Ipv4Addr) -> () {
6 }
8}
9
10pub struct PayloadData<'p> {
11 pub data: &'p mut[u8],
12}
13
14impl <'p>pnet::packet::Packet for PayloadData<'p> {
17 fn packet(& self) -> & [u8] { &self.data[..] }
18 fn payload(& self) -> & [u8] { &self.data[..] }
19}
20
21#[macro_export]
22macro_rules! payload {
23 ($value:expr, $buf:expr) => {{
24 let buf_len = $buf.len();
25 let pdata = PayloadData {
26 data : &mut$buf[buf_len - $value.len()..],
27 };
28 for i in 0..$value.len() {
29 pdata.data[i] = $value[i];
30 }
31 (pdata, None as Option<&u16>)
32 }};
33}
34