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

Commit bafac2a5 authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

[NETFILTER]: Restore {ipt,ip6t,ebt}_LOG compatibility



The nfnetlink_log infrastructure changes broke compatiblity of the LOG
targets. They currently use whatever log backend was registered first,
which means that if ipt_ULOG was loaded first, no messages will be printed
to the ring buffer anymore.

Restore compatiblity by using the old log functions by default and only use
the nf_log backend if the user explicitly said so.

Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 45fe4dc0
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@


#define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */
#define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */
#define EBT_LOG_ARP 0x02
#define EBT_LOG_ARP 0x02
#define EBT_LOG_NFLOG 0x04
#define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP)
#define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP)
#define EBT_LOG_PREFIX_SIZE 30
#define EBT_LOG_PREFIX_SIZE 30
#define EBT_LOG_WATCHER "log"
#define EBT_LOG_WATCHER "log"
+2 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,8 @@
#define IPT_LOG_TCPOPT		0x02	/* Log TCP options */
#define IPT_LOG_TCPOPT		0x02	/* Log TCP options */
#define IPT_LOG_IPOPT		0x04	/* Log IP options */
#define IPT_LOG_IPOPT		0x04	/* Log IP options */
#define IPT_LOG_UID		0x08	/* Log UID owning local socket */
#define IPT_LOG_UID		0x08	/* Log UID owning local socket */
#define IPT_LOG_MASK		0x0f
#define IPT_LOG_NFLOG		0x10	/* Log using nf_log backend */
#define IPT_LOG_MASK		0x1f


struct ipt_log_info {
struct ipt_log_info {
	unsigned char level;
	unsigned char level;
+2 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,8 @@
#define IP6T_LOG_TCPOPT		0x02	/* Log TCP options */
#define IP6T_LOG_TCPOPT		0x02	/* Log TCP options */
#define IP6T_LOG_IPOPT		0x04	/* Log IP options */
#define IP6T_LOG_IPOPT		0x04	/* Log IP options */
#define IP6T_LOG_UID		0x08	/* Log UID owning local socket */
#define IP6T_LOG_UID		0x08	/* Log UID owning local socket */
#define IP6T_LOG_MASK		0x0f
#define IP6T_LOG_NFLOG		0x10	/* Log using nf_log backend */
#define IP6T_LOG_MASK		0x1f


struct ip6t_log_info {
struct ip6t_log_info {
	unsigned char level;
	unsigned char level;
+6 −1
Original line number Original line Diff line number Diff line
@@ -166,7 +166,12 @@ static void ebt_log(const struct sk_buff *skb, unsigned int hooknr,
	li.u.log.level = info->loglevel;
	li.u.log.level = info->loglevel;
	li.u.log.logflags = info->bitmask;
	li.u.log.logflags = info->bitmask;


	nf_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, info->prefix);
	if (info->bitmask & EBT_LOG_NFLOG)
		nf_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li,
		              info->prefix);
	else
		ebt_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li,
		               info->prefix);
}
}


static struct ebt_watcher log =
static struct ebt_watcher log =
+6 −1
Original line number Original line Diff line number Diff line
@@ -425,7 +425,12 @@ ipt_log_target(struct sk_buff **pskb,
	li.u.log.level = loginfo->level;
	li.u.log.level = loginfo->level;
	li.u.log.logflags = loginfo->logflags;
	li.u.log.logflags = loginfo->logflags;


	nf_log_packet(PF_INET, hooknum, *pskb, in, out, &li, loginfo->prefix);
	if (loginfo->logflags & IPT_LOG_NFLOG)
		nf_log_packet(PF_INET, hooknum, *pskb, in, out, &li,
		              loginfo->prefix);
	else
		ipt_log_packet(PF_INET, hooknum, *pskb, in, out, &li,
		               loginfo->prefix);


	return IPT_CONTINUE;
	return IPT_CONTINUE;
}
}
Loading