[netfilter-cvslog] r7452 - in trunk/libnetfilter_conntrack: . include/libnetfilter_conntrack src/conntrack
pablo at netfilter.org
pablo at netfilter.org
Wed Apr 9 14:09:04 CEST 2008
Author: pablo at netfilter.org
Date: 2008-04-09 14:09:04 +0200 (Wed, 09 Apr 2008)
New Revision: 7452
Modified:
trunk/libnetfilter_conntrack/configure.in
trunk/libnetfilter_conntrack/include/libnetfilter_conntrack/libnetfilter_conntrack.h
trunk/libnetfilter_conntrack/src/conntrack/api.c
Log:
add nfct_send
Modified: trunk/libnetfilter_conntrack/configure.in
===================================================================
--- trunk/libnetfilter_conntrack/configure.in 2008-04-09 11:06:50 UTC (rev 7451)
+++ trunk/libnetfilter_conntrack/configure.in 2008-04-09 12:09:04 UTC (rev 7452)
@@ -4,7 +4,7 @@
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(libnetfilter_conntrack, 0.0.89)
+AM_INIT_AUTOMAKE(libnetfilter_conntrack, 0.0.90)
AC_PROG_CC
AM_PROG_LIBTOOL
Modified: trunk/libnetfilter_conntrack/include/libnetfilter_conntrack/libnetfilter_conntrack.h
===================================================================
--- trunk/libnetfilter_conntrack/include/libnetfilter_conntrack/libnetfilter_conntrack.h 2008-04-09 11:06:50 UTC (rev 7451)
+++ trunk/libnetfilter_conntrack/include/libnetfilter_conntrack/libnetfilter_conntrack.h 2008-04-09 12:09:04 UTC (rev 7452)
@@ -279,6 +279,10 @@
const enum nf_conntrack_query query,
const void *data);
+extern int nfct_send(struct nfct_handle *h,
+ const enum nf_conntrack_query query,
+ const void *data);
+
extern int nfct_catch(struct nfct_handle *h);
/* low level API: netlink functions */
Modified: trunk/libnetfilter_conntrack/src/conntrack/api.c
===================================================================
--- trunk/libnetfilter_conntrack/src/conntrack/api.c 2008-04-09 11:06:50 UTC (rev 7451)
+++ trunk/libnetfilter_conntrack/src/conntrack/api.c 2008-04-09 12:09:04 UTC (rev 7452)
@@ -548,7 +548,7 @@
}
/**
- * nfct_query - send a query to ctnetlin
+ * nfct_query - send a query to ctnetlink and handle the reply
* @h: library handler
* @qt: query type
* @data: data required to send the query
@@ -574,6 +574,37 @@
}
/**
+ * nfct_send - send a query to ctnetlink
+ * @h: library handler
+ * @qt: query type
+ * @data: data required to send the query
+ *
+ * Like nfct_query but we do not wait for the reply from ctnetlink.
+ * You can use nfct_send() and nfct_catch() to emulate nfct_query().
+ * This is particularly useful when the socket is non-blocking.
+ *
+ * On error, -1 is returned and errno is explicitely set. On success, 0
+ * is returned.
+ */
+int nfct_send(struct nfct_handle *h,
+ const enum nf_conntrack_query qt,
+ const void *data)
+{
+ size_t size = 4096; /* enough for now */
+ char buffer[4096];
+ struct nfnlhdr *req = (struct nfnlhdr *) buffer;
+
+ assert(h != NULL);
+ assert(data != NULL);
+
+ if (nfct_build_query(h->nfnlssh_ct, qt, data, req, size) == -1)
+ return -1;
+
+ return nfnl_send(h->nfnlh, &req->nlh);
+}
+
+
+/**
* nfct_catch - catch events
* @h: library handler
*
More information about the netfilter-cvslog
mailing list