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.
Jan