Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7dfbd7eb authored by Liping Zhang's avatar Liping Zhang Committed by Amit Pundir
Browse files

netfilter: xt_quota2: make quota2_log work well

In upstream commit 7200135b
(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: default avatarSamboo Shen <samboo.shen@spreadtrum.com>
Signed-off-by: default avatarLiping Zhang <liping.zhang@spreadtrum.com>
parent 0bdb3a79
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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
+20 −1
Original line number Diff line number Diff line
@@ -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

/**