Message ID | 20160321213532.GA1818@salvia |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Monday, March 21, 2016 11:36 PM, Pablo Neira Ayuso wrote:
> So isn't the more simple patch that I'm attaching achieving what you need?
Yes. I applied the patch and it works as expected. Indeed much more simple.
I intend to use this patch and would like it to eventually get into the formal kernel. Do you intend to pursue this into mainline kernel?
On Wed, Mar 23, 2016 at 11:40:14AM +0000, Yigal Reiss (yreiss) wrote: > On Monday, March 21, 2016 11:36 PM, Pablo Neira Ayuso wrote: > > So isn't the more simple patch that I'm attaching achieving what you need? > > Yes. I applied the patch and it works as expected. Indeed much more > simple. > > I intend to use this patch and would like it to eventually get into > the formal kernel. Do you intend to pursue this into mainline > kernel? Just made a formal submission of the patch.
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c index 7542999..cb5b630 100644 --- a/net/netfilter/nfnetlink_queue.c +++ b/net/netfilter/nfnetlink_queue.c @@ -582,7 +582,12 @@ __nfqnl_enqueue_packet(struct net *net, struct nfqnl_instance *queue, /* nfnetlink_unicast will either free the nskb or add it to a socket */ err = nfnetlink_unicast(nskb, net, queue->peer_portid, MSG_DONTWAIT); if (err < 0) { - queue->queue_user_dropped++; + if (queue->flags & NFQA_CFG_F_FAIL_OPEN) { + failopen = 1; + err = 0; + } else { + queue->queue_user_dropped++; + } goto err_out_unlock; }