Hi Viktor,
I sent a new version patch set, and please have a look at them.
On 07/19/2012 01:17 AM, Viktor Mihajlovski wrote:
> + nl_join_groups(srv->netlinknh, groups);
AFAIK nl_join_groups is deprecated and should be replaced by a
setsockopt( ..., NETLINK_ADD_MEMBERSHIP,...)
Further, I'd recommend to make the group join optional, i.e. something like
if (groups)
setsockopt(...);
and perhaps add error handling.
Not sure, but should the add membership not happen after the connect?
Well, I tried. But setsockopt() needs a fd, and before nl_connect(), we cannot
use nl_socket_get_fd() to get the fd because the fd is allocated in nl_connect().
But if setsockopt() is called after nl_connect(), it doesn't work.
For now, I didn't find any better solution.
As far as I can tell, it is necessary to implement equivalents of
virNetlinkEventAddClient, virNetlinkEventRemoveClient,
virNetlinkEventRemoveClientPrimitive, virNetlinkEventServiceStop and
virNetlinkEventServiceIsRunning to include the protocol.
Generally, you could go all the way and replace the body of
virNetlinkEventServiceStart by a call to
virNetlinkEventServiceStartProtocol(NETLINK_ROUTE,0);
or change all occurrences of the call to use the extended signature,
I tried my best to find all of them.
If I missed something, please tell me.
Thanks. :)
Maybe Eric or some other maintainer wants to comment as well.
--
Best Regards,
Tang chen