24.02.2016 22:10, Josef Bacik пишет: > We were setting DNS_OPTION_PREVER_IPV* based on which version of the dhcp > request we go back. However this would mean that we would mistakenly fall > back > on ipv4 in an ipv6 only system, or vice versa. For the sake of simplicity > lets > only use the ip version for the dns server we got in our dhcp response. > Thanks, > > Signed-off-by: Josef Bacik <jba...@fb.com> > --- > grub-core/net/bootp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c > index 345ad7a..cde818c 100644 > --- a/grub-core/net/bootp.c > +++ b/grub-core/net/bootp.c > @@ -95,7 +95,7 @@ parse_dhcp_vendor (const char *name, const void *vend, int > limit, int *mask) > struct grub_net_network_level_address s; > s.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; > s.ipv4 = grub_get_unaligned32 (ptr); > - s.option = DNS_OPTION_PREFER_IPV4; > + s.option = DNS_OPTION_IPV4; > grub_net_add_dns_server (&s); > ptr += 4; > } > @@ -492,7 +492,7 @@ get_dhcpv6_dns_address (const struct > grub_net_dhcpv6_packet *packet, > (la + i)->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; > (la + i)->ipv6[0] = grub_get_unaligned64 (pa); > (la + i)->ipv6[1] = grub_get_unaligned64 (pa + 8); > - (la + i)->option = DNS_OPTION_PREFER_IPV6; > + (la + i)->option = DNS_OPTION_IPV6; > } > > *addr = la; >
that's pretty radical behavior change. It may break existing configuration. As the only justification is side stepping issues in current DNS implementation I think we should rather fix implementation. And even if it does not break things knowing that host has "other" IP and additional interface may be needed is IMHO more useful than getting confusing "host does not exist". _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel