netlink: add NETLINK_BROADCAST_ERROR socket option
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 18 Feb 2009 01:40:43 +0000 (01:40 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Feb 2009 09:01:08 +0000 (01:01 -0800)
commitbe0c22a46cfb79ab2342bb28fde99afa94ef868e
treeda112ef3066d75a7e5adcfe3355ad2b60ef1929b
parent2d96cf8cdfd625da51e5d237d564cd75d3147547
netlink: add NETLINK_BROADCAST_ERROR socket option

This patch adds NETLINK_BROADCAST_ERROR which is a netlink
socket option that the listener can set to make netlink_broadcast()
return errors in the delivery to the caller. This option is useful
if the caller of netlink_broadcast() do something with the result
of the message delivery, like in ctnetlink where it drops a network
packet if the event delivery failed, this is used to enable reliable
logging and state-synchronization. If this socket option is not set,
netlink_broadcast() only reports ESRCH errors and silently ignore
ENOBUFS errors, which is what most netlink_broadcast() callers
should do.

This socket option is based on a suggestion from Patrick McHardy.
Patrick McHardy can exchange this patch for a beer from me ;).

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netlink.h
net/netlink/af_netlink.c