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" <[email protected]> > > > > > > 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 <[email protected]> > > > Signed-off-by: Daniel P. Berrange <[email protected]> > > > --- > > > > + 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 :|
