Struct nfqueue::Queue [] [src]

pub struct Queue<T> { /* fields omitted */ }

Opaque struct Queue: abstracts an NFLOG queue

Methods

impl<T: Send> Queue<T>
[src]

Creates a new, uninitialized, Queue.

Opens a NFLOG handler

This function obtains a netfilter queue connection handle. When you are finished with the handle returned by this function, you should destroy it by calling close(). A new netlink connection is obtained internally and associated with the queue connection handle returned.

Closes a NFLOG handler

This function closes the nfqueue handler and free associated resources.

Bind a nfqueue handler to a given protocol family

Binds the given queue connection handle to process packets belonging to the given protocol family (ie. PF_INET, PF_INET6, etc).

Arguments

  • pf - Protocol family (usually AF_INET or AF_INET6)

Remarks:

Requires root privileges

Unbinds the nfqueue handler from a protocol family

Unbinds the given nfqueue handle from processing packets belonging to the given protocol family.

Arguments

  • pf - Protocol family (usually AF_INET or AF_INET6)

Remarks:

Requires root privileges

Returns the C file descriptor associated with the nfqueue handler

This function returns a file descriptor that can be used for communication over the netlink connection associated with the given queue connection handle.

create a new queue handler bind it to a queue number, and to a callback.

Creates a new queue handle, and returns it. The new queue is identified by num, and the callback specified by cb will be called for each enqueued packet.

Arguments

  • num: the number of the queue to bind to
  • cb: callback function to call for each queued packet

Destroys a group handle

Removes the binding for the specified queue handle. This call also unbind from the nfqueue handler, so you don't need to call any extra function.

Set the amount of packet data that nfqueue copies to userspace

Arguments:

  • mode - The part of the packet that we are interested in
  • range - Size of the packet that we want to get

mode can be one of:

  • NFQNL_COPY_NONE - do not copy any data
  • NFQNL_COPY_META - copy only packet metadata
  • NFQNL_COPY_PACKET - copy entire packet

Set kernel queue maximum length parameter

Arguments:

  • queuelen - The length of the queue

Sets the size of the queue in kernel. This fixes the maximum number of packets the kernel will store before internally before dropping upcoming packets

Runs an infinite loop, waiting for packets and triggering the callback.