From cde6011a7a58af2c6431f34c24b07c7d9338d6ea Mon Sep 17 00:00:00 2001 From: "/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org" Date: Sat, 6 Aug 2005 22:19:45 +0000 Subject: - don't export internals of handle data structure to users - dynamically allocate handler at callee. - add more convenient callback_register() / handle_packet() api - add internal linked list of group handles and lookup/management functions - merge changes into compatibility library --- include/libnfnetlink_log/libnfnetlink_log.h | 33 +++++++++++++---------------- 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'include') diff --git a/include/libnfnetlink_log/libnfnetlink_log.h b/include/libnfnetlink_log/libnfnetlink_log.h index 10345fd..4815bf3 100644 --- a/include/libnfnetlink_log/libnfnetlink_log.h +++ b/include/libnfnetlink_log/libnfnetlink_log.h @@ -13,36 +13,33 @@ #include #include +struct nfulnl_handle; +struct nfulnl_g_handle; -struct nfulnl_handle -{ - struct nfnl_handle nfnlh; -}; +extern struct nfnl_handle *nfulnl_nfnlh(struct nfulnl_handle *h); -struct nfulnl_g_handle -{ - struct nfulnl_handle *h; - u_int16_t id; -}; +typedef nfulnl_callback(struct nfulnl_g_handle *gh, struct nfgenmsg *nfmsg, + struct nfattr *nfa[], void *data); -struct ctnl_msg_handler { - int type; - int (*handler)(struct sockaddr_nl *, struct nlmsghdr *, void *arg); -}; -extern int nfulnl_open(struct nfulnl_handle *h); +extern struct nfulnl_handle *nfulnl_open(void); extern int nfulnl_close(struct nfulnl_handle *h); extern int nfulnl_bind_pf(struct nfulnl_handle *h, u_int16_t pf); extern int nfulnl_unbind_pf(struct nfulnl_handle *h, u_int16_t pf); -extern int nfulnl_bind_group(struct nfulnl_handle *h, - struct nfulnl_g_handle *qh, u_int16_t num); -extern int nfulnl_unbind_group(struct nfulnl_g_handle *qh); +extern struct nfulnl_g_handle *nfulnl_bind_group(struct nfulnl_handle *h, + u_int16_t num); +extern int nfulnl_unbind_group(struct nfulnl_g_handle *gh); -extern int nfulnl_set_mode(struct nfulnl_g_handle *qh, +extern int nfulnl_set_mode(struct nfulnl_g_handle *gh, u_int8_t mode, unsigned int len); extern int nfulnl_set_timeout(struct nfulnl_g_handle *gh, u_int32_t timeout); extern int nfulnl_set_qthresh(struct nfulnl_g_handle *gh, u_int32_t qthresh); extern int nfulnl_set_nlbufsiz(struct nfulnl_g_handle *gh, u_int32_t nlbufsiz); + +extern int nfulnl_callback_register(struct nfulnl_g_handle *gh, + nfulnl_callback *cb, void *data); +extern int nfulnl_handle_packet(struct nfulnl_handle *h, char *buf, int len); + #endif /* __LIBNFNETLINK_LOG_H */ -- cgit v1.2.3