[netfilter-cvslog] r4183 - in trunk/libnfnetlink_log: include src

laforge at netfilter.org laforge at netfilter.org
Sat Jul 30 12:24:35 CEST 2005


Author: laforge at netfilter.org
Date: 2005-07-30 12:24:35 +0200 (Sat, 30 Jul 2005)
New Revision: 4183

Modified:
   trunk/libnfnetlink_log/include/libnfnetlink_log.h
   trunk/libnfnetlink_log/src/libnfnetlink_log.c
Log:
add functions for setting nlbufsiz, qthreshold and timeout


Modified: trunk/libnfnetlink_log/include/libnfnetlink_log.h
===================================================================
--- trunk/libnfnetlink_log/include/libnfnetlink_log.h	2005-07-30 09:32:00 UTC (rev 4182)
+++ trunk/libnfnetlink_log/include/libnfnetlink_log.h	2005-07-30 10:24:35 UTC (rev 4183)
@@ -42,5 +42,7 @@
 
 extern int nfulnl_set_mode(struct nfulnl_g_handle *qh,
 			  u_int8_t mode, unsigned int len);
-
+extern int nfulnl_set_timeout(struct nfulnl_g_handle *gh, u_int32_t timeout);
+extern int nfulnl_set_qthresh(struct nfulnl_g_handle *gh, u_int32_t qthresh);
+extern int nfulnl_set_nlbufsiz(struct nfulnl_g_handle *gh, u_int32_t nlbufsiz);
 #endif	/* __LIBNFNETLINK_LOG_H */

Modified: trunk/libnfnetlink_log/src/libnfnetlink_log.c
===================================================================
--- trunk/libnfnetlink_log/src/libnfnetlink_log.c	2005-07-30 09:32:00 UTC (rev 4182)
+++ trunk/libnfnetlink_log/src/libnfnetlink_log.c	2005-07-30 10:24:35 UTC (rev 4183)
@@ -30,6 +30,9 @@
 #include <linux/netfilter/nfnetlink_log.h>
 #include "libnfnetlink_log.h"
 
+#define HEADER_LEN	(NLMSG_LENGTH(sizeof(struct nlmsghdr))	\
+			 +NLMSG_LENGTH(sizeof(struct nfgenmsg)))
+
 /***********************************************************************
  * low level stuff 
  ***********************************************************************/
@@ -57,9 +60,7 @@
 __build_send_cfg_msg(struct nfulnl_handle *h, u_int8_t command,
 		     u_int16_t queuenum, u_int8_t pf)
 {
-	char buf[NLMSG_LENGTH(sizeof(struct nlmsghdr))
-		+NLMSG_LENGTH(sizeof(struct nfgenmsg))
-		+NFA_LENGTH(sizeof(struct nfulnl_msg_config_cmd))];
+	char buf[HEADER_LEN+NFA_LENGTH(sizeof(struct nfulnl_msg_config_cmd))];
 	struct nfulnl_msg_config_cmd cmd;
 	struct nlmsghdr *nmh = (struct nlmsghdr *) buf;
 
@@ -107,19 +108,58 @@
 int nfulnl_set_mode(struct nfulnl_g_handle *gh,
 		   u_int8_t mode, u_int32_t range)
 {
-	char buf[NLMSG_LENGTH(sizeof(struct nlmsghdr))
-		+NLMSG_LENGTH(sizeof(struct nfgenmsg))
-		+NFA_LENGTH(sizeof(struct nfulnl_msg_config_params))];
-	struct nfulnl_msg_config_params params;
+	char buf[HEADER_LEN
+		+NFA_LENGTH(sizeof(struct nfulnl_msg_config_mode))];
+	struct nfulnl_msg_config_mode params;
 	struct nlmsghdr *nmh = (struct nlmsghdr *) buf;
 
 	nfnl_fill_hdr(&gh->h->nfnlh, nmh, 0, AF_UNSPEC, gh->id,
 		      NFULNL_MSG_CONFIG, NLM_F_REQUEST|NLM_F_ACK);
 
-	params.copy_range = htonl(range);
+	params.copy_range = htonl(range);	/* copy_range is short */
 	params.copy_mode = mode;
-	nfnl_addattr_l(nmh, sizeof(buf), NFULA_CFG_PARAMS, &params,
+	nfnl_addattr_l(nmh, sizeof(buf), NFULA_CFG_MODE, &params,
 		       sizeof(params));
 
 	return nfnl_send(&gh->h->nfnlh, nmh);
 }
+
+int nfulnl_set_timeout(struct nfulnl_g_handle *gh, u_int32_t timeout)
+{
+	char buf[HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))];
+	struct nlmsghdr *nmh = (struct nlmsghdr *) buf;
+
+	nfnl_fill_hdr(&gh->h->nfnlh, nmh, 0, AF_UNSPEC, gh->id,
+		      NFULNL_MSG_CONFIG, NLM_F_REQUEST|NLM_F_ACK);
+
+	nfnl_addattr32(nmh, sizeof(buf), NFULA_CFG_TIMEOUT, htonl(timeout));
+
+	return nfnl_send(&gh->h->nfnlh, nmh);
+}
+
+int nfulnl_set_qthresh(struct nfulnl_g_handle *gh, u_int32_t qthresh)
+{
+	char buf[HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))];
+	struct nlmsghdr *nmh = (struct nlmsghdr *) buf;
+
+	nfnl_fill_hdr(&gh->h->nfnlh, nmh, 0, AF_UNSPEC, gh->id,
+		      NFULNL_MSG_CONFIG, NLM_F_REQUEST|NLM_F_ACK);
+
+	nfnl_addattr32(nmh, sizeof(buf), NFULA_CFG_QTHRESH, htonl(qthresh));
+
+	return nfnl_send(&gh->h->nfnlh, nmh);
+}
+
+int nfulnl_set_nlbufsiz(struct nfulnl_g_handle *gh, u_int32_t nlbufsiz)
+{
+	char buf[HEADER_LEN+NFA_LENGTH(sizeof(u_int32_t))];
+	struct nlmsghdr *nmh = (struct nlmsghdr *) buf;
+
+	nfnl_fill_hdr(&gh->h->nfnlh, nmh, 0, AF_UNSPEC, gh->id,
+		      NFULNL_MSG_CONFIG, NLM_F_REQUEST|NLM_F_ACK);
+
+	nfnl_addattr32(nmh, sizeof(buf), NFULA_CFG_NLBUFSIZ, htonl(nlbufsiz));
+
+	return nfnl_send(&gh->h->nfnlh, nmh);
+}
+




More information about the netfilter-cvslog mailing list