From c86e48dc7d688d97a6ee4697ce01e594fa70d7db 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, 16 Apr 2005 13:30:56 +0000 Subject: add pablo's conntrack tool --- include/libctnetlink.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 include/libctnetlink.h (limited to 'include/libctnetlink.h') diff --git a/include/libctnetlink.h b/include/libctnetlink.h new file mode 100644 index 0000000..2cba075 --- /dev/null +++ b/include/libctnetlink.h @@ -0,0 +1,72 @@ +/* libctnetlink.h: Header file for the Connection Tracking library. + * + * Jay Schulist , Copyright (c) 2001. + * (C) 2002 by Harald Welte + * + * 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 +#include +#include +#include +#include +#include +#include "libnfnetlink.h" + +#define CTNL_BUFFSIZE 8192 + +struct ctnl_msg_handler { + int type; + int (*handler)(struct sockaddr_nl *, struct nlmsghdr *, void *arg); +}; + +struct ctnl_handle { + struct nfnl_handle nfnlh; + struct ctnl_msg_handler *handler[IPCTNL_MSG_COUNT]; +}; + +extern int ctnl_open(struct ctnl_handle *cth, unsigned subscriptions); +extern int ctnl_close(struct ctnl_handle *cth); +extern int ctnl_unregister_handler(struct ctnl_handle *cth, int type); +extern int ctnl_register_handler(struct ctnl_handle *cth, + struct ctnl_msg_handler *hndlr); +extern int ctnl_get_conntrack(struct ctnl_handle *cth, + struct ip_conntrack_tuple *tuple, + enum ctattr_type_t t, + unsigned long id); +extern int ctnl_del_conntrack(struct ctnl_handle *cth, + struct ip_conntrack_tuple *tuple, + enum ctattr_type_t t, + unsigned long id); +extern int ctnl_list_conntrack(struct ctnl_handle *cth, int family); + +extern int ctnl_list_expect(struct ctnl_handle *cth, int family); +extern int ctnl_del_expect(struct ctnl_handle *cth, + struct ip_conntrack_tuple *t); + +#if 0 +extern int ctnl_listen(struct ctnl_handle *ctnl, + int (*handler)(struct sockaddr_nl *, struct nlmsghdr *n, void *), + void *jarg); +extern int ctnl_talk(struct ctnl_handle *ctnl, struct nlmsghdr *n, pid_t peer, + unsigned groups, struct nlmsghdr *answer, + int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *), + void *jarg); +extern int ctnl_dump_request(struct ctnl_handle *cth, int type, void *req, + int len); +extern int ctnl_dump_filter(struct ctnl_handle *cth, + int (*filter)(struct sockaddr_nl *, struct nlmsghdr *n, void *), + void *arg1, + int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *), + void *arg2); +#endif + +extern int ctnl_send(struct ctnl_handle *cth, struct nlmsghdr *n); +extern int ctnl_wilddump_request(struct ctnl_handle *cth, int family, int type); + +#endif /* __LIBCTNETLINK_H */ -- cgit v1.2.3