[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1] dns: fixed lookup error when no IPv6 is returned
From: |
Daniel Kiper |
Subject: |
Re: [PATCH v1] dns: fixed lookup error when no IPv6 is returned |
Date: |
Fri, 28 Apr 2023 16:25:01 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Fri, Apr 28, 2023 at 01:17:44PM +0200, Renaud Métrich wrote:
> When trying to resolve DNS names into IP addresses, the DNS code fails
> from time to time with the following error:
> -------- 8< ---------------- 8< ---------------- 8< ---------------- 8<
> --------
> error: ../../grub-core/net/dns.c:688:no DNS record found.
> -------- 8< ---------------- 8< ---------------- 8< ---------------- 8<
> --------
>
> This happens when both IPv4 and IPv6 queries are performed against the
> DNS server (e.g. 8.8.8.8) but there is no IP returned for IPv6 query, as
> shown below:
> -------- 8< ---------------- 8< ---------------- 8< ---------------- 8<
> --------
> grub> net_del_dns 192.168.122.1
> grub> net_add_dns 8.8.8.8
> grub> net_nslookup ipv4.test-ipv6.com
> error: ../../grub-core/net/dns.c:688:no DNS record found.
> grub> net_nslookup ipv4.test-ipv6.com
> 216.218.228.115
> -------- 8< ---------------- 8< ---------------- 8< ---------------- 8<
> --------
>
> The root cause is the code exiting prematurely when the data->addresses
> buffer has been allocated in recv_hook(), even if there was no address
> returned last time recv_hook() executed.
>
> This patch additionally simplifies the error handling.
And it even does more than that. Please split this patch into three patches:
- simplify error handling,
- add grub_dprintf() messages,
- fix the issue described in the commit message.
Daniel