int ipq_set_mode(const struct ipq_handle *h, u_int8_t mode, size_t range);
The h parameter is a context handle which must previously have been returned successfully from a call to ipq_create_handle.
The mode parameter must be one of:
The range parameter is used to specify how many bytes of the payload to copy to userspace. It is only valid for IPQ_COPY_PACKET mode and is otherwise ignored. The maximum useful value for range is 65535 (greater values will be clamped to this by ip_queue).
ipq_set_mode is usually used immediately following ipq_create_handle to enable the flow of packets to userspace.
Note that as the underlying Netlink messaging transport is connectionless, the ip_queue module does not know that a userspace application is ready to communicate until it receives a message such as this.
status = ipq_set_mode(h, IPQ_COPY_META, 0); if (status < 0) { ipq_perror("myapp"); ipq_destroy_handle(h); exit(1); }
would generate the following output:
myapp: Failed to send netlink message: Connection refused
Distributed under the GNU General Public License.