[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