Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions src/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ pub enum XMLFormatFlags {
}

const NFQ_XML_HW: u32 = 1;
const NFQ_XML_MARK: u32 = (1 << 1);
const NFQ_XML_DEV: u32 = (1 << 2);
const NFQ_XML_PHYSDEV: u32 = (1 << 3);
const NFQ_XML_PAYLOAD: u32 = (1 << 4);
const NFQ_XML_TIME: u32 = (1 << 5);
const NFQ_XML_ALL: u32 = (!0u32);
const NFQ_XML_MARK: u32 = 1 << 1;
const NFQ_XML_DEV: u32 = 1 << 2;
const NFQ_XML_PHYSDEV: u32 = 1 << 3;
const NFQ_XML_PAYLOAD: u32 = 1 << 4;
const NFQ_XML_TIME: u32 = 1 << 5;
const NFQ_XML_ALL: u32 = !0u32;

/// Hardware address
#[repr(C)]
Expand Down Expand Up @@ -118,7 +118,7 @@ extern "C" {
fn nfq_get_physoutdev(nfad: NfqueueData) -> u32;

fn nfq_get_packet_hw(nfad: NfqueueData) -> *const NfMsgPacketHw;
fn nfq_get_payload(nfad: NfqueueData, data: &*mut libc::c_void) -> libc::c_int;
fn nfq_get_payload(nfad: NfqueueData, data: &mut *mut libc::c_void) -> libc::c_int;

// printing functions
fn nfq_snprintf_xml(
Expand Down Expand Up @@ -301,11 +301,11 @@ impl Message {
/// The actual amount and type of data retrieved by this function will
/// depend on the mode set with the `set_mode()` function.
pub fn get_payload(&self) -> &[u8] {
let c_ptr = std::ptr::null_mut();
let payload_len = unsafe { nfq_get_payload(self.nfad, &c_ptr) };
let payload: &[u8] =
unsafe { std::slice::from_raw_parts(c_ptr as *mut u8, payload_len as usize) };

let mut c_ptr = std::ptr::null_mut();
let payload_len = unsafe { nfq_get_payload(self.nfad, &mut c_ptr) };
let payload = unsafe {
std::slice::from_raw_parts(c_ptr as *mut _, payload_len as usize)
};
payload
}

Expand Down