• Main Page
  • Modules
  • Files
  • File List

libnetfilter_acct.h

00001 #ifndef _LIBNETFILTER_ACCT_H_
00002 #define _LIBNETFILTER_ACCT_H_
00003 
00004 #include <sys/types.h>
00005 #include <linux/netfilter/nfnetlink_acct.h>
00006 
00007 struct nfacct;
00008 
00009 enum nfacct_attr_type {
00010         NFACCT_ATTR_NAME = 0,
00011         NFACCT_ATTR_PKTS,
00012         NFACCT_ATTR_BYTES,
00013 };
00014 
00015 struct nfacct *nfacct_alloc(void);
00016 void nfacct_free(struct nfacct *nfacct);
00017 
00018 void nfacct_attr_set(struct nfacct *nfacct, enum nfacct_attr_type type, const void *data);
00019 void nfacct_attr_set_str(struct nfacct *nfacct, enum nfacct_attr_type type, const char *name);
00020 void nfacct_attr_set_u64(struct nfacct *nfacct, enum nfacct_attr_type type, uint64_t value);
00021 void nfacct_attr_unset(struct nfacct *nfacct, enum nfacct_attr_type type);
00022 
00023 const void *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type);
00024 const char *nfacct_attr_get_str(struct nfacct *nfacct, enum nfacct_attr_type type);
00025 uint64_t nfacct_attr_get_u64(struct nfacct *nfacct, enum nfacct_attr_type type);
00026 
00027 struct nlmsghdr;
00028 
00029 struct nlmsghdr *nfacct_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq);
00030 void nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct);
00031 int nfacct_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfacct *nfacct);
00032 
00033 #define NFACCT_SNPRINTF_F_FULL  (1 << 0)
00034 
00035 #define NFACCT_SNPRINTF_T_PLAIN 0
00036 #define NFACCT_SNPRINTF_T_XML 1
00037 
00038 int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, uint16_t type, uint16_t flags);
00039 
00040 #endif

Generated on Tue Mar 27 2012 12:36:24 for libnetfilter_acct by  doxygen 1.7.1