[libvirt] [PATCH] Don't use AI_ADDRCONFIG when binding to wildcard addresses
Daniel P. Berrange
berrange at redhat.com
Mon Jun 2 09:28:27 UTC 2014
On Fri, May 30, 2014 at 08:21:40AM +0200, Ján Tomko wrote:
> On 05/29/2014 04:47 PM, Eric Blake wrote:
> > On 05/29/2014 03:32 AM, Ján Tomko wrote:
> >> https://bugzilla.redhat.com/show_bug.cgi?id=1098659
> >>
> >> With parallel boot, network addresses might not yet be assigned [1],
> >> but binding to wildcard addresses should work.
> >>
> >> For non-wildcard addresses, ADDRCONFIG is still used. Document this
> >> in libvirtd.conf.
> >>
> >> [1] http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
> >> ---
> >
> >> - hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
> >> + hints.ai_flags = AI_PASSIVE;
> >> hints.ai_socktype = SOCK_STREAM;
> >>
> >> + /* Don't use ADDRCONFIG for binding to the wildcard address.
> >> + * Just catch the error returned by socket() if the system has
> >> + * no IPv6 support.
> >> + *
> >> + * This allows libvirtd to be started in parallel with the network
> >> + * startup in most cases.
> >> + */
> >> + if (nodename &&
> >> + !(virSocketAddrParse(&tmp_addr, nodename, AF_UNSPEC) > 0 &&
> >> + virSocketAddrIsWildcard(&tmp_addr)))
> >> + hints.ai_flags = AI_ADDRCONFIG;
> >
> > Shouldn't this be |= ?
> >
>
> Functionally it's the same, AI_PASSIVE is ignored if nodename is non-NULL.
>
> But it should be |= if we were using other flags.
Please make it '|=' regardless. Using '=' is setting a nasty trap-door for
a future change which adds some other flags where use of '|=' will be
needed.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list