On Mon, Mar 12, 2018 at 01:08:44PM -0500, Eric Blake wrote:
> On 03/12/2018 12:46 PM, Daniel P. Berrangé wrote:
> > On Mon, Mar 12, 2018 at 12:49:33PM +0000, Daniel P. Berrangé wrote:
> > > From: "Daniel P. Berrange" <berra...@redhat.com>
> > > 
> > > The test-io-channel-socket.c file has some useful helper functions for
> > > checking if a specific IP protocol is available. Other tests need to
> > > perform similar kinds of checks to avoid running tests that will fail
> > > due to missing IP protocols.
> > > 
> > > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com>
> > > ---
> 
> > > +    if (socket_can_bind("::1") < 0) {
> > > +        if (errno != EADDRNOTAVAIL) {
> > > +            return -1;
> > > +        }
> > > +    } else {
> > > +        *has_ipv6 = true;
> > > +    }
> > > +
> > 
> > Sigh, I should have kept the new code identical to the old code,
> > rather than trying to improve it, as this is in fact broken. The
> > socket_can_bind() is mistakenly returning '0' when EADDRNOTAVAIL
> > is set, so we always set the has_ipv4|6 vars to true.
> > 
> > It needs this squashed in:
> 
> The squash makes sense; with that, you can keep the R-b I added on the
> series (I guess that shows I only read the code, not tried to run the
> testsuite with the code applied, or I might have found this too).

Even if you had run the testsuite (like I did), you would not have seen
the bug unless your host has IPv6 disabled *entirely*. Fortunately
Travis hits that scenario which is how I noticed when I sent my branch
through Travis prior to generating a pull request :-)

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Reply via email to