[libvirt] [PATCH] Fix compilation on non-macvtap systems

Thomas Graf tgraf at infradead.org
Thu Jun 23 10:29:38 UTC 2011


On Wed, Jun 22, 2011 at 08:45:23PM -0400, Laine Stump wrote:
> The upstream libnl maintainer (I'm Cc'ing him) has told me it
> wouldn't be difficult to make libvirt's libnl usage compatible with
> all versions of libnl, but he didn't elaborate. If we're lucky, the
> libnl usage in that bit of code will require no change, but we
> definitely shouldn't let ourselves get to a release that requires
> libnl for all Linux builds without resolving this.
> 
> (Thomas - the code in question is in src/util/netlink.[ch] of
> git://libvirt.org/libvirt.git)

I just looked at the code briefly. I don't think any of the API
that you use has changed between 2.x and 3.x so no changes should
be needed.

However:
    *respbuflen = nl_recv(nlhandle, &nladdr, respbuf, NULL);
    if (*respbuflen <= 0) {
        virReportSystemError(errno,
                             "%s", _("nl_recv failed"));
        rc = -1;
    }

You could simplify this a lot by using nl_wait_for_ack() in
all cases except where you fetch the link which would have
to use nl_recvmsgs() and a have a callback do the parsing.
Still, the code as-is looks solid, all you could do is ditch
a few dozen lines of code.




More information about the libvir-list mailing list