On 21/10/2015 17:43, Daniel P. Berrange wrote: > + } > + if (addr->has_ipv6 && addr->ipv6) { > + g_printerr("One\n"); > + return PF_INET6; > + } > + if (addr->has_ipv4 && addr->ipv4) { > + g_printerr("Two\n"); > + return PF_INET; > + } > + if (addr->has_ipv6 && !addr->ipv6) { > + g_printerr("Three\n"); > + return PF_INET; > + } > + if (addr->has_ipv4 && !addr->ipv4) { > + g_printerr("Four\n"); > + return PF_INET6; > + } > + g_printerr("Five %d %d %d %d\n", > + addr->has_ipv4, addr->ipv4, > + addr->has_ipv6, addr->ipv6); > + return PF_UNSPEC; > +} > +
Apart from the extra debugging output, I think you can merge as if ((addr->has_ipv6 && addr->ipv6) || (addr->has_ipv4 && !addr->ipv4)) { return PF_INET6; } if ((addr->has_ipv4 && addr->ipv4) || (addr->has_ipv6 && !addr->ipv6)) { return PF_INET; } return PF_UNSPEC; where the order of the first two is important. Paolo