summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorLiping Zhang <liping.zhang@spreadtrum.com>2016-06-22 16:49:48 +0800
committerAmit Pundir <amit.pundir@linaro.org>2016-07-11 12:43:04 +0530
commit7dfbd7eb600ff6c88cb305c1064a93edb9b5e234 (patch)
tree09cd0c549adacdba9d7971ba365aca0d28c735fc /net
parent0bdb3a79a474e1b9246d72a10c36d5c246dd54b7 (diff)
netfilter: xt_quota2: make quota2_log work well
In upstream commit 7200135bc1e61f1437dc326ae2ef2f310c50b4eb (netfilter: kill ulog targets) http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7200135bc1e6 ipt_ULOG target was removed, meanwhile, the IP_NF_TARGET_ULOG Kconfig and ipt_ULOG.h header file were removed too. This causes we cannot enable QUOTA2_LOG, and netd complains this error: "Unable to open quota socket". So when we reach the quota2 limit, userspace will not be notified with this event. Since IP_NF_TARGET_ULOG was removed, we need not depend on "IP_NF_TARGET_ULOG=n", and for compatibility, add ulog_packet_msg_t related definitions copied from "ipt_ULOG.h". Change-Id: I38132efaabf52bea75dfd736ce734a1b9690e87e Reported-by: Samboo Shen <samboo.shen@spreadtrum.com> Signed-off-by: Liping Zhang <liping.zhang@spreadtrum.com>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/Kconfig1
-rw-r--r--net/netfilter/xt_quota2.c21
2 files changed, 20 insertions, 2 deletions
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index 273f26b67653..1959548b1161 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -1354,7 +1354,6 @@ config NETFILTER_XT_MATCH_QUOTA2
config NETFILTER_XT_MATCH_QUOTA2_LOG
bool '"quota2" Netfilter LOG support'
depends on NETFILTER_XT_MATCH_QUOTA2
- depends on IP_NF_TARGET_ULOG=n # not yes, not module, just no
default n
help
This option allows `quota2' to log ONCE when a quota limit
diff --git a/net/netfilter/xt_quota2.c b/net/netfilter/xt_quota2.c
index 99592ae56d9b..834594aa0085 100644
--- a/net/netfilter/xt_quota2.c
+++ b/net/netfilter/xt_quota2.c
@@ -21,8 +21,27 @@
#include <linux/netfilter/x_tables.h>
#include <linux/netfilter/xt_quota2.h>
+
#ifdef CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
-#include <linux/netfilter_ipv4/ipt_ULOG.h>
+/* For compatibility, these definitions are copied from the
+ * deprecated header file <linux/netfilter_ipv4/ipt_ULOG.h> */
+#define ULOG_MAC_LEN 80
+#define ULOG_PREFIX_LEN 32
+
+/* Format of the ULOG packets passed through netlink */
+typedef struct ulog_packet_msg {
+ unsigned long mark;
+ long timestamp_sec;
+ long timestamp_usec;
+ unsigned int hook;
+ char indev_name[IFNAMSIZ];
+ char outdev_name[IFNAMSIZ];
+ size_t data_len;
+ char prefix[ULOG_PREFIX_LEN];
+ unsigned char mac_len;
+ unsigned char mac[ULOG_MAC_LEN];
+ unsigned char payload[0];
+} ulog_packet_msg_t;
#endif
/**