Author: hawk Date: Mon Sep 21 11:49:32 2009 GMT Module: packages Tag: HEAD ---- Log message: - fixes from upstream
---- Files affected: packages/ulogd: ulogd-git_fixes.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/ulogd/ulogd-git_fixes.patch diff -u /dev/null packages/ulogd/ulogd-git_fixes.patch:1.1 --- /dev/null Mon Sep 21 13:49:32 2009 +++ packages/ulogd/ulogd-git_fixes.patch Mon Sep 21 13:49:26 2009 @@ -0,0 +1,846 @@ +diff -urN ulogd-2.0.0beta3.orig/doc/mysql-ulogd2-flat.sql ulogd-2.0.0beta3/doc/mysql-ulogd2-flat.sql +--- ulogd-2.0.0beta3.orig/doc/mysql-ulogd2-flat.sql 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/doc/mysql-ulogd2-flat.sql 2009-09-17 21:35:22.000000000 +0200 +@@ -107,19 +107,19 @@ + + DROP VIEW IF EXISTS `view_tcp`; + CREATE SQL SECURITY INVOKER VIEW `view_tcp` AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 6; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 6; + + DROP VIEW IF EXISTS `view_udp`; + CREATE SQL SECURITY INVOKER VIEW `view_udp` AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 17; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 17; + + DROP VIEW IF EXISTS `view_icmp`; + CREATE SQL SECURITY INVOKER VIEW `view_icmp` AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 1; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 1; + + DROP VIEW IF EXISTS `view_icmpv6`; + CREATE SQL SECURITY INVOKER VIEW `view_icmpv6` AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 58; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 58; + + -- ulog view + DROP VIEW IF EXISTS `ulog`; +@@ -222,11 +222,11 @@ + + DROP VIEW IF EXISTS `view_tcp_quad`; + CREATE SQL SECURITY INVOKER VIEW `view_tcp_quad` AS +- SELECT _id,BIN_TO_IPV6(ip_saddr_bin) AS ip_saddr_str,tcp_sport,BIN_TO_IPV6(ip_daddr_bin) AS ip_daddr_str,tcp_dport FROM ulog2 WHERE ulog2.oob_family = 6; ++ SELECT _id,BIN_TO_IPV6(ip_saddr_bin) AS ip_saddr_str,tcp_sport,BIN_TO_IPV6(ip_daddr_bin) AS ip_daddr_str,tcp_dport FROM ulog2 WHERE ulog2.ip_protocol = 6; + + DROP VIEW IF EXISTS `view_udp_quad`; + CREATE SQL SECURITY INVOKER VIEW `view_udp_quad` AS +- SELECT _id,BIN_TO_IPV6(ip_saddr_bin) AS ip_saddr_str,udp_sport,BIN_TO_IPV6(ip_daddr_bin) AS ip_daddr_str,udp_dport FROM ulog2 WHERE ulog2.oob_family = 17; ++ SELECT _id,BIN_TO_IPV6(ip_saddr_bin) AS ip_saddr_str,udp_sport,BIN_TO_IPV6(ip_daddr_bin) AS ip_daddr_str,udp_dport FROM ulog2 WHERE ulog2.ip_protocol = 17; + + + +diff -urN ulogd-2.0.0beta3.orig/doc/pgsql-ulogd2-flat.sql ulogd-2.0.0beta3/doc/pgsql-ulogd2-flat.sql +--- ulogd-2.0.0beta3.orig/doc/pgsql-ulogd2-flat.sql 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/doc/pgsql-ulogd2-flat.sql 2009-09-17 21:35:22.000000000 +0200 +@@ -108,16 +108,16 @@ + -- + + CREATE OR REPLACE VIEW view_tcp AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 6; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 6; + + CREATE OR REPLACE VIEW view_udp AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 17; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 17; + + CREATE OR REPLACE VIEW view_icmp AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 1; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 1; + + CREATE OR REPLACE VIEW view_icmpv6 AS +- SELECT * FROM ulog2 WHERE ulog2.oob_family = 58; ++ SELECT * FROM ulog2 WHERE ulog2.ip_protocol = 58; + + -- complete view + CREATE OR REPLACE VIEW ulog AS +@@ -179,10 +179,10 @@ + + -- shortcuts + CREATE OR REPLACE VIEW view_tcp_quad AS +- SELECT _id,ip_saddr_str,tcp_sport,ip_daddr_str,tcp_dport FROM ulog2 WHERE ulog2.oob_family = 6; ++ SELECT _id,ip_saddr_str,tcp_sport,ip_daddr_str,tcp_dport FROM ulog2 WHERE ulog2.ip_protocol = 6; + + CREATE OR REPLACE VIEW view_udp_quad AS +- SELECT _id,ip_saddr_str,udp_sport,ip_daddr_str,udp_dport FROM ulog2 WHERE ulog2.oob_family = 17; ++ SELECT _id,ip_saddr_str,udp_sport,ip_daddr_str,udp_dport FROM ulog2 WHERE ulog2.ip_protocol = 17; + + -- + -- conntrack +diff -urN ulogd-2.0.0beta3.orig/doc/ulogd.sgml ulogd-2.0.0beta3/doc/ulogd.sgml +--- ulogd-2.0.0beta3.orig/doc/ulogd.sgml 2008-09-12 00:06:46.000000000 +0200 ++++ ulogd-2.0.0beta3/doc/ulogd.sgml 2009-09-17 21:35:22.000000000 +0200 +@@ -6,7 +6,7 @@ + + <title>ULOGD 2.x - the Netfilter Userspace Logging Daemon</title> + <author>Harald Welte <[email protected]>, Eric Leblond <[email protected]></author> +-<date>Revision 2008/09/03</date> ++<date>Revision 2009/04/18</date> + + <abstract> + This is the documentation for <tt>ulogd-2.x</tt>, the second generation +@@ -464,6 +464,14 @@ + <tag>procedure</tag> + Stored procedure that will be run with the argument specified in the + table variable. ++Behaviour of the procedure option can be twitted by using specific name. ++If procedure name is: ++<itemize> ++<item>"INSERT": A classic INSERT SQL query is done in the table pointed by the ++ "table" variable.</item> ++<item>start with "INSERT ": Configuration has to specify the start of the INSERT query that will be used. For example, ++a typical value is "INSERT INTO ulog2".</item> ++</itemize> + <tag>db</tag> + Name of the mysql database. + <tag>host</tag> +diff -urN ulogd-2.0.0beta3.orig/filter/ulogd_filter_HWHDR.c ulogd-2.0.0beta3/filter/ulogd_filter_HWHDR.c +--- ulogd-2.0.0beta3.orig/filter/ulogd_filter_HWHDR.c 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/filter/ulogd_filter_HWHDR.c 2009-09-17 21:35:22.000000000 +0200 +@@ -31,6 +31,8 @@ + #include <linux/if_ether.h> + #include <ulogd/ulogd.h> + ++#define HWADDR_LENGTH 128 ++ + enum input_keys { + KEY_RAW_TYPE, + KEY_OOB_PROTOCOL, +@@ -44,8 +46,10 @@ + KEY_MAC_TYPE, + KEY_MAC_PROTOCOL, + KEY_MAC_SADDR, ++ START_KEY = KEY_MAC_SADDR, + KEY_MAC_DADDR, + KEY_MAC_ADDR, ++ MAX_KEY = KEY_MAC_ADDR, + }; + + static struct ulogd_key mac2str_inp[] = { +@@ -94,42 +98,38 @@ + }, + [KEY_MAC_SADDR] = { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "mac.saddr.str", + }, + [KEY_MAC_DADDR] = { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "mac.daddr.str", + }, + [KEY_MAC_ADDR] = { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "mac.str", + }, + }; + ++static char hwmac_str[MAX_KEY - START_KEY][HWADDR_LENGTH]; ++ + static int parse_mac2str(struct ulogd_key *ret, unsigned char *mac, + int okey, int len) + { +- char *mac_str; + char *buf_cur; + int i; + +- if (len > 0) +- mac_str = calloc(len/sizeof(char)*3 + 1, sizeof(char)); +- else +- mac_str = strdup(""); +- +- if (mac_str == NULL) ++ if (len/sizeof(char)*3 + 1 > HWADDR_LENGTH) + return ULOGD_IRET_ERR; + +- buf_cur = mac_str; ++ if (len == 0) ++ hwmac_str[okey - START_KEY][0] = 0; ++ ++ buf_cur = hwmac_str[okey - START_KEY]; + for (i = 0; i < len; i++) + buf_cur += sprintf(buf_cur, "%02x%c", mac[i], + i == len - 1 ? 0 : ':'); + +- okey_set_ptr(&ret[okey], mac_str); ++ okey_set_ptr(&ret[okey], hwmac_str[okey - START_KEY]); + + return ULOGD_IRET_OK; + } +diff -urN ulogd-2.0.0beta3.orig/filter/ulogd_filter_IFINDEX.c ulogd-2.0.0beta3/filter/ulogd_filter_IFINDEX.c +--- ulogd-2.0.0beta3.orig/filter/ulogd_filter_IFINDEX.c 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/filter/ulogd_filter_IFINDEX.c 2009-09-17 21:35:22.000000000 +0200 +@@ -30,12 +30,14 @@ + static struct ulogd_key ifindex_keys[] = { + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_NONE | ULOGD_RETF_FREE, ++ .len = IFNAMSIZ, ++ .flags = ULOGD_RETF_NONE, + .name = "oob.in", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_NONE | ULOGD_RETF_FREE, ++ .len = IFNAMSIZ, ++ .flags = ULOGD_RETF_NONE, + .name = "oob.out", + }, + }; +@@ -62,25 +64,18 @@ + { + struct ulogd_key *ret = pi->output.keys; + struct ulogd_key *inp = pi->input.keys; +- void *ptr; ++ static char indev[IFNAMSIZ]; ++ static char outdev[IFNAMSIZ]; + +- ptr = calloc(IFNAMSIZ, sizeof(char)); +- if (!ptr) +- return ULOGD_IRET_ERR; +- +- nlif_index2name(nlif_inst, ikey_get_u32(&inp[0]), ptr); +- if (((char *)ptr)[0] == '*') +- ((char *)(ptr))[0] = 0; +- okey_set_ptr(&ret[0], ptr); +- +- ptr = calloc(IFNAMSIZ, sizeof(char)); +- if (!ptr) +- return ULOGD_IRET_ERR; +- +- nlif_index2name(nlif_inst, ikey_get_u32(&inp[1]), ptr); +- if (((char *)ptr)[0] == '*') +- ((char *)(ptr))[0] = 0; +- okey_set_ptr(&ret[1], ptr); ++ nlif_index2name(nlif_inst, ikey_get_u32(&inp[0]), indev); ++ if (indev[0] == '*') ++ indev[0] = 0; ++ okey_set_ptr(&ret[0], indev); ++ ++ nlif_index2name(nlif_inst, ikey_get_u32(&inp[1]), outdev); ++ if (outdev[0] == '*') ++ outdev[0] = 0; ++ okey_set_ptr(&ret[1], outdev); + + return ULOGD_IRET_OK; + } +diff -urN ulogd-2.0.0beta3.orig/filter/ulogd_filter_IP2BIN.c ulogd-2.0.0beta3/filter/ulogd_filter_IP2BIN.c +--- ulogd-2.0.0beta3.orig/filter/ulogd_filter_IP2BIN.c 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/filter/ulogd_filter_IP2BIN.c 2009-09-17 21:35:22.000000000 +0200 +@@ -27,11 +27,13 @@ + #include <string.h> + #include <arpa/inet.h> + #include <ulogd/ulogd.h> ++#include <netinet/if_ether.h> + + #define IPADDR_LENGTH 128 + + enum input_keys { + KEY_OOB_FAMILY, ++ KEY_OOB_PROTOCOL, + KEY_IP_SADDR, + START_KEY = KEY_IP_SADDR, + KEY_IP_DADDR, +@@ -83,37 +85,33 @@ + static struct ulogd_key ip2bin_keys[] = { + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "ip.saddr.bin", + }, + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "ip.daddr.bin", + }, + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "orig.ip.saddr.bin", + }, + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "orig.ip.daddr.bin", + }, + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "reply.ip.saddr.bin", + }, + { + .type = ULOGD_RET_RAWSTR, +- .flags = ULOGD_RETF_FREE, + .name = "reply.ip.daddr.bin", + }, + + }; + ++static char ipbin_array[MAX_KEY-START_KEY][IPADDR_LENGTH]; ++ + /** + * Convert IPv4 address (as 32-bit unsigned integer) to IPv6 address: + * add 96 bits prefix "::ffff:" to get IPv6 address "::ffff:a.b.c.d". +@@ -126,16 +124,40 @@ + ipv6->s6_addr32[3] = ipv4; + } + +-static char *ip2bin(struct ulogd_key* inp, int index, char family) ++static int ip2bin(struct ulogd_key* inp, int index, int oindex) + { +- char tmp[IPADDR_LENGTH]; ++ char family = ikey_get_u8(&inp[KEY_OOB_FAMILY]); ++ char convfamily = family; + unsigned char *addr8; + struct in6_addr *addr; + struct in6_addr ip4_addr; + char *buffer; + int i, written; + +- switch (family) { ++ if (family == AF_BRIDGE) { ++ if (!pp_is_valid(inp, KEY_OOB_PROTOCOL)) { ++ ulogd_log(ULOGD_NOTICE, ++ "No protocol inside AF_BRIDGE packet\n"); ++ return ULOGD_IRET_ERR; ++ } ++ switch (ikey_get_u16(&inp[KEY_OOB_PROTOCOL])) { ++ case ETH_P_IPV6: ++ convfamily = AF_INET6; ++ break; ++ case ETH_P_IP: ++ convfamily = AF_INET; ++ break; ++ case ETH_P_ARP: ++ convfamily = AF_INET; ++ break; ++ default: ++ ulogd_log(ULOGD_NOTICE, ++ "Unknown protocol inside AF_BRIDGE packet\n"); ++ return ULOGD_IRET_ERR; ++ } ++ } ++ ++ switch (convfamily) { + case AF_INET6: + addr = (struct in6_addr *)ikey_get_u128(&inp[index]); + break; +@@ -147,10 +169,10 @@ + default: + /* TODO handle error */ + ulogd_log(ULOGD_NOTICE, "Unknown protocol family\n"); +- return NULL; ++ return ULOGD_IRET_ERR; + } + +- buffer = tmp; ++ buffer = ipbin_array[oindex]; + /* format IPv6 to BINARY(16) as "0x..." */ + buffer[0] = '0'; + buffer[1] = 'x'; +@@ -161,14 +183,14 @@ + addr8[0], addr8[1], addr8[2], addr8[3]); + if (written != 2 * 4) { + buffer[0] = 0; +- return NULL; ++ return ULOGD_IRET_ERR; + } + buffer += written; + addr8 += 4; + } + buffer[0] = 0; + +- return strdup(tmp); ++ return ULOGD_IRET_OK; + } + + static int interp_ip2bin(struct ulogd_pluginstance *pi) +@@ -176,12 +198,16 @@ + struct ulogd_key *ret = pi->output.keys; + struct ulogd_key *inp = pi->input.keys; + int i; +- int oob_family = ikey_get_u8(&inp[KEY_OOB_FAMILY]); ++ int fret; + + /* Iter on all addr fields */ + for(i = START_KEY; i < MAX_KEY; i++) { + if (pp_is_valid(inp, i)) { +- okey_set_ptr(&ret[i-1], ip2bin(inp, i, oob_family)); ++ fret = ip2bin(inp, i, i-START_KEY); ++ if (fret != ULOGD_IRET_OK) ++ return fret; ++ okey_set_ptr(&ret[i-START_KEY], ++ ipbin_array[i-START_KEY]); + } + } + +diff -urN ulogd-2.0.0beta3.orig/filter/ulogd_filter_IP2STR.c ulogd-2.0.0beta3/filter/ulogd_filter_IP2STR.c +--- ulogd-2.0.0beta3.orig/filter/ulogd_filter_IP2STR.c 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/filter/ulogd_filter_IP2STR.c 2009-09-17 21:35:22.000000000 +0200 +@@ -102,49 +102,42 @@ + static struct ulogd_key ip2str_keys[] = { + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "ip.saddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "ip.daddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "orig.ip.saddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "orig.ip.daddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "reply.ip.saddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "reply.ip.daddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "arp.saddr.str", + }, + { + .type = ULOGD_RET_STRING, +- .flags = ULOGD_RETF_FREE, + .name = "arp.daddr.str", + }, + }; + +-static char *ip2str(struct ulogd_key *inp, int index) ++static char ipstr_array[MAX_KEY-START_KEY][IPADDR_LENGTH]; ++ ++static int ip2str(struct ulogd_key *inp, int index, int oindex) + { +- char tmp[IPADDR_LENGTH]; + char family = ikey_get_u8(&inp[KEY_OOB_FAMILY]); + char convfamily = family; + +@@ -152,7 +145,7 @@ + if (!pp_is_valid(inp, KEY_OOB_PROTOCOL)) { + ulogd_log(ULOGD_NOTICE, + "No protocol inside AF_BRIDGE packet\n"); +- return NULL; ++ return ULOGD_IRET_ERR; + } + switch (ikey_get_u16(&inp[KEY_OOB_PROTOCOL])) { + case ETH_P_IPV6: +@@ -167,7 +160,7 @@ + default: + ulogd_log(ULOGD_NOTICE, + "Unknown protocol inside AF_BRIDGE packet\n"); +- return NULL; ++ return ULOGD_IRET_ERR; + } + } + +@@ -176,18 +169,19 @@ + case AF_INET6: + inet_ntop(AF_INET6, + ikey_get_u128(&inp[index]), +- tmp, sizeof(tmp)); ++ ipstr_array[oindex], sizeof(ipstr_array[oindex])); + break; + case AF_INET: + ip = ikey_get_u32(&inp[index]); +- inet_ntop(AF_INET, &ip, tmp, sizeof(tmp)); ++ inet_ntop(AF_INET, &ip, ++ ipstr_array[oindex], sizeof(ipstr_array[oindex])); + break; + default: + /* TODO error handling */ + ulogd_log(ULOGD_NOTICE, "Unknown protocol family\n"); +- return NULL; ++ return ULOGD_IRET_ERR; + } +- return strdup(tmp); ++ return ULOGD_IRET_OK; + } + + static int interp_ip2str(struct ulogd_pluginstance *pi) +@@ -195,11 +189,16 @@ + struct ulogd_key *ret = pi->output.keys; + struct ulogd_key *inp = pi->input.keys; + int i; ++ int fret; + + /* Iter on all addr fields */ + for (i = START_KEY; i <= MAX_KEY; i++) { + if (pp_is_valid(inp, i)) { +- okey_set_ptr(&ret[i-START_KEY], ip2str(inp, i)); ++ fret = ip2str(inp, i, i-START_KEY); ++ if (fret != ULOGD_IRET_OK) ++ return fret; ++ okey_set_ptr(&ret[i-START_KEY], ++ ipstr_array[i-START_KEY]); + } + } + +diff -urN ulogd-2.0.0beta3.orig/include/ulogd/ulogd.h ulogd-2.0.0beta3/include/ulogd/ulogd.h +--- ulogd-2.0.0beta3.orig/include/ulogd/ulogd.h 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/include/ulogd/ulogd.h 2009-09-17 21:35:22.000000000 +0200 +@@ -19,6 +19,7 @@ + #include <signal.h> /* need this because of extension-sighandler */ + #include <sys/types.h> + #include <string.h> ++#include <config.h> + + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +diff -urN ulogd-2.0.0beta3.orig/input/flow/ulogd_inpflow_NFCT.c ulogd-2.0.0beta3/input/flow/ulogd_inpflow_NFCT.c +--- ulogd-2.0.0beta3.orig/input/flow/ulogd_inpflow_NFCT.c 2009-03-06 18:54:04.000000000 +0100 ++++ ulogd-2.0.0beta3/input/flow/ulogd_inpflow_NFCT.c 2009-09-17 21:35:22.000000000 +0200 +@@ -114,6 +114,12 @@ + .options = CONFIG_OPT_NONE, + .u.value = 0, + }, ++ { ++ .key = "netlink_resync_timeout", ++ .type = CONFIG_TYPE_INT, ++ .options = CONFIG_OPT_NONE, ++ .u.value = 60, ++ }, + }, + }; + #define pollint_ce(x) (x->ces[0]) +@@ -123,6 +129,7 @@ + #define eventmask_ce(x) (x->ces[4]) + #define nlsockbufsize_ce(x) (x->ces[5]) + #define nlsockbufmaxsize_ce(x) (x->ces[6]) ++#define nlresynctimeout_ce(x) (x->ces[7]) + + enum nfct_keys { + NFCT_ORIG_IP_SADDR = 0, +@@ -596,6 +603,9 @@ + switch(type) { + case NFCT_T_NEW: + ts = hashtable_add(cpi->ct_active, &tmp); ++ if (ts == NULL) ++ return NFCT_CB_CONTINUE; ++ + gettimeofday(&ts->time[START], NULL); + return NFCT_CB_STOLEN; + case NFCT_T_UPDATE: +@@ -604,6 +614,9 @@ + nfct_copy(ts->ct, ct, NFCT_CP_META); + else { + ts = hashtable_add(cpi->ct_active, &tmp); ++ if (ts == NULL) ++ return NFCT_CB_CONTINUE; ++ + gettimeofday(&ts->time[START], NULL); + return NFCT_CB_STOLEN; + } +@@ -637,12 +650,18 @@ + { + struct nfct_pluginstance *cpi = + (struct nfct_pluginstance *)upi->private; ++ static int warned = 0; + + if (size < nlsockbufmaxsize_ce(upi->config_kset).u.value) { + cpi->nlbufsiz = nfnl_rcvbufsiz(nfct_nfnlh(cpi->cth), size); + return 1; + } + ++ /* we have already warned the user, do not keep spamming */ ++ if (warned) ++ return 0; ++ ++ warned = 1; + ulogd_log(ULOGD_NOTICE, "Maximum buffer size (%d) in NFCT has been " + "reached. Please, consider rising " + "`netlink_socket_buffer_size` and " +@@ -657,14 +676,13 @@ + struct ulogd_pluginstance *upi = container_of(param, + struct ulogd_pluginstance, + private); ++ static int warned = 0; + + if (!(what & ULOGD_FD_READ)) + return 0; + + if (nfct_catch(cpi->cth) == -1) { + if (errno == ENOBUFS) { +- int family = AF_UNSPEC; +- + if (nlsockbufmaxsize_ce(upi->config_kset).u.value) { + int s = cpi->nlbufsiz * 2; <<Diff was trimmed, longer than 597 lines>> _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
