summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
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-09-23 14:38:42 +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-09-23 14:38:42 +0000
commit315f46427a4775c9025d93f6d7dc7758b8452756 (patch)
tree0bb881f1d5e3ba8b37011ab5b651354d5ce4fb0a /include
parentb67ba89cd86a673b10dad10980156fe53703d34b (diff)
add nfnl_get_data() and nfnl_get_pointer_to_data()
Diffstat (limited to 'include')
-rw-r--r--include/libnfnetlink/libnfnetlink.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/libnfnetlink/libnfnetlink.h b/include/libnfnetlink/libnfnetlink.h
index 4935a3e..91373b8 100644
--- a/include/libnfnetlink/libnfnetlink.h
+++ b/include/libnfnetlink/libnfnetlink.h
@@ -85,6 +85,20 @@ extern struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h,
const unsigned char *buf,
size_t len);
+#define nfnl_get_data(tb, attr, type) \
+ ({ type __ret = 0; \
+ if (tb[attr-1]) \
+ __ret = *(type *)NFA_DATA(tb[attr-1]); \
+ __ret; \
+ })
+
+#define nfnl_get_pointer_to_data(tb, attr, type) \
+ ({ type *__ret = NULL; \
+ if (tb[attr-1]) \
+ __ret = NFA_DATA(tb[attr-1]); \
+ __ret; \
+ })
+
/* nfnl attribute handling functions */
extern int nfnl_addattr_l(struct nlmsghdr *, int, int, void *, int);
extern int nfnl_addattr32(struct nlmsghdr *, int, int, u_int32_t);