Struct nfqueue::Message
[−]
[src]
pub struct Message { /* fields omitted */ }
Opaque struct Message
: abstracts NFLOG data representing a packet data and metadata
Methods
impl Message
[src]
fn get_id(&self) -> u32
Returns the unique ID of the packet
fn get_nfmark(&self) -> u32
Get the packet mark
fn get_timestamp(&self) -> Result<timeval, NfqueueError>
Get the packet timestamp
fn get_indev(&self) -> u32
Get the interface that the packet was received through
Returns the index of the device the packet was received via.
If the returned index is 0, the packet was locally generated or the
input interface is not known (ie. POSTROUTING
?).
fn get_physindev(&self) -> u32
Get the physical interface that the packet was received through
Returns the index of the physical device the packet was received via.
If the returned index is 0, the packet was locally generated or the
physical input interface is no longer known (ie. POSTROUTING
?).
fn get_outdev(&self) -> u32
Get the interface that the packet will be routed out
Returns the index of the device the packet will be sent out.
If the returned index is 0, the packet is destined to localhost or
the output interface is not yet known (ie. PREROUTING
?).
fn get_physoutdev(&self) -> u32
Get the physical interface that the packet will be routed out
Returns the index of the physical device the packet will be sent out.
If the returned index is 0, the packet is destined to localhost or
the physical output interface is not yet known (ie. PREROUTING
?).
fn get_packet_hw<'a>(&'a self) -> Result<HwAddr<'a>, NfqueueError>
Get hardware address
Retrieves the hardware address associated with the given packet.
For ethernet packets, the hardware address returned (if any) will be the MAC address of the packet source host.
The destination MAC address is not known until after POSTROUTING and a successful ARP request, so cannot currently be retrieved.
fn set_verdict(&self, verdict: Verdict)
Issue a verdict on a packet
Notifies netfilter of the userspace verdict for the given packet.
Every queued packet must have a verdict specified by userspace,
either by calling this function, or by calling any other
set_verdict_*
function.
Arguments
verdict
: verdict to return to netfilter (Verdict::Accept
,Verdict::Drop
, ...)
fn set_verdict_mark(&self, verdict: Verdict, mark: u32)
Issue a verdict on a packet, with a mark
Notifies netfilter of the userspace verdict for the given packet.
Every queued packet must have a verdict specified by userspace,
either by calling this function, or by calling any other
set_verdict_*
function.
Arguments
verdict
: verdict to return to netfilter (Verdict::Accept
,Verdict::Drop
, ...)mark
: the mark to put on the packet, in network-byte order
fn set_verdict_full(&self, verdict: Verdict, mark: u32, data: &[u8])
Issue a verdict on a packet, with a mark and new data
Notifies netfilter of the userspace verdict for the given packet. The new packet will replace the one that was queued.
Every queued packet must have a verdict specified by userspace,
either by calling this function, or by calling any other
set_verdict_*
function.
Arguments
verdict
: verdict to return to netfilter (Verdict::Accept
,Verdict::Drop
, ...)mark
: the mark to put on the packet, in network-byte orderdata
: the new packet
fn get_payload<'a>(&'a self) -> &'a [u8]
Get payload
Depending on set_mode, we may not have a payload.
The actual amount and type of data retrieved by this function will
depend on the mode set with the set_mode()
function.
fn as_xml_str(&self, flags: &[XMLFormatFlags]) -> Result<String, Utf8Error>
Print the queued packet in XML format into a buffer