diff options
author | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-10-26 11:39:01 +0000 |
---|---|---|
committer | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-10-26 11:39:01 +0000 |
commit | 445a1e92c92d052007ab66b0a79d2bfa5683d493 (patch) | |
tree | b39a9b8fe70a83dddd784cd22d0d7a0971df94aa /include/libnetfilter_queue/libnetfilter_queue.h | |
parent | 646df1a88eceeab23750c700847198f2f02b4e69 (diff) |
rename files correctly (Eric Leblond)
Diffstat (limited to 'include/libnetfilter_queue/libnetfilter_queue.h')
-rw-r--r-- | include/libnetfilter_queue/libnetfilter_queue.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/include/libnetfilter_queue/libnetfilter_queue.h b/include/libnetfilter_queue/libnetfilter_queue.h new file mode 100644 index 0000000..9c2b40d --- /dev/null +++ b/include/libnetfilter_queue/libnetfilter_queue.h @@ -0,0 +1,87 @@ +/* libnfqnetlink.h: Header file for the Netfilter Queue library. + * + * (C) 2005 by Harald Welte <laforge@gnumonks.org> + * + * + * Changelog : + * (2005/08/11) added parsing function (Eric Leblond <regit@inl.fr>) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + */ + +#ifndef __LIBCTNETLINK_H +#define __LIBCTNETLINK_H + +#include <libnfnetlink/libnfnetlink.h> + +#include <linux/netfilter/nfnetlink.h> +#include <linux/netfilter/nfnetlink_queue.h> + +struct nfqnl_handle; +struct nfqnl_q_handle; + +extern int nfqnl_errno; + +extern struct nfnl_handle *nfqnl_nfnlh(struct nfqnl_handle *h); +extern int nfqnl_fd(struct nfqnl_handle *h); + +typedef int nfqnl_callback(struct nfqnl_q_handle *gh, struct nfgenmsg *nfmsg, + struct nfattr *nfa[], void *data); + + +extern struct nfqnl_handle *nfqnl_open(void); +extern int nfqnl_close(struct nfqnl_handle *h); + +extern int nfqnl_bind_pf(struct nfqnl_handle *h, u_int16_t pf); +extern int nfqnl_unbind_pf(struct nfqnl_handle *h, u_int16_t pf); + +extern struct nfqnl_q_handle *nfqnl_create_queue(struct nfqnl_handle *h, + u_int16_t num, + nfqnl_callback *cb, + void *data); +extern int nfqnl_destroy_queue(struct nfqnl_q_handle *qh); + +extern int nfqnl_handle_packet(struct nfqnl_handle *h, char *buf, int len); + +extern int nfqnl_set_mode(struct nfqnl_q_handle *qh, + u_int8_t mode, unsigned int len); + +extern int nfqnl_set_verdict(struct nfqnl_q_handle *qh, + u_int32_t id, + u_int32_t verdict, + u_int32_t data_len, + unsigned char *buf); + +extern int nfqnl_set_verdict_mark(struct nfqnl_q_handle *qh, + u_int32_t id, + u_int32_t verdict, + u_int32_t mark, + u_int32_t datalen, + unsigned char *buf); + +/* message parsing function */ + +extern struct nfqnl_msg_packet_hdr * + nfqnl_get_msg_packet_hdr(struct nfattr *nfa[]); + +extern u_int32_t nfqnl_get_nfmark(struct nfattr *nfa[]); + +extern struct nfqnl_msg_packet_timestamp * + nfqnl_get_timestamp(struct nfattr *nfa[]); + +/* return 0 if not set */ +extern u_int32_t nfqnl_get_indev(struct nfattr *nfa[]); +extern u_int32_t nfqnl_get_physindev(struct nfattr *nfa[]); +extern u_int32_t nfqnl_get_outdev(struct nfattr *nfa[]); +extern u_int32_t nfqnl_get_physoutdev(struct nfattr *nfa[]); + +extern struct nfqnl_msg_packet_hw *nfqnl_get_packet_hw(struct nfattr *nfa[]); + +/* return 0 if problem */ +extern int nfqnl_get_payload(struct nfattr *nfa[], + char ** data, unsigned int* datalen); + + + +#endif /* __LIBNFQNETLINK_H */ |