On Mon, 21 Oct 2002, David Woodhouse wrote:
> I'm playing with userspace applications which want to monitor the status of
> IrDA and Bluetooth devices. Rather than polling for the interface state
> (this is a handheld device and polling wastes CPU and battery), I want to
> use netlink.
> I have two problems:
> 1. I appear to need CAP_NET_ADMIN to bind to the netlink groups which give
> me this information. I can poll for it just fine, but need
> elevated privs to be notified. Why is this, and is there a workaround?
Alexey should be able to give you a better comment.
If you can get the status via ioctl there should be no reason why you
shouldnt get it via netlink. The change maybe a little involved
(look at:net/netlink/af_netlink.c::netlink_bind()) since
there are some valid reasons to block non-admin from receiving certain
messages. I think the LSM people may have been trying to do this, cant
> 2. Even root doesn't get notification of state changes for Bluetooth
> interfaces, because they're not treated as 'normal' network devices
> like IrDA devices are. I can see the logic behind that -- by why
> is it done differently from IrDA? Is there a way to get notification
> of BT interface state changes?
I cant see anything on netlink and irda; i am also not very familiar with
either IrDA or Bluetooth.
Regardless, you dont need to be a net device to use netlink. Its a
messaging system and you can use it both within the kernel as well as
kernel<->userspace. If you get stuck writting the interface ping me