You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.3 KiB
69 lines
2.3 KiB
1 month ago
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
Date: Tue, 10 Mar 2020 11:23:49 +0100
|
||
|
Subject: [PATCH] efi/net: Print a debug message if parsing the address fails
|
||
|
|
||
|
Currently if parsing the address fails an error message is printed. But in
|
||
|
most cases this isn't a fatal error since the grub_efi_net_parse_address()
|
||
|
function is only used to match an address with a network interface to use.
|
||
|
|
||
|
And if this fails, the default interface is used which is good enough for
|
||
|
most cases. So instead of printing an error that would pollute the console
|
||
|
just print a debug message if the address is not parsed correctly.
|
||
|
|
||
|
A user can enable debug messages for the efinet driver to have information
|
||
|
about the failure and the fact that the default interface is being used.
|
||
|
|
||
|
Related: rhbz#1732765
|
||
|
|
||
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
---
|
||
|
grub-core/net/efi/net.c | 18 +++++++++++-------
|
||
|
1 file changed, 11 insertions(+), 7 deletions(-)
|
||
|
|
||
|
diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c
|
||
|
index 84573937b1..a3f0535d43 100644
|
||
|
--- a/grub-core/net/efi/net.c
|
||
|
+++ b/grub-core/net/efi/net.c
|
||
|
@@ -778,9 +778,9 @@ grub_efi_net_parse_address (const char *address,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
- return grub_error (GRUB_ERR_NET_BAD_ADDRESS,
|
||
|
- N_("unrecognised network address `%s'"),
|
||
|
- address);
|
||
|
+ grub_dprintf ("efinet", "unrecognised network address '%s'\n", address);
|
||
|
+
|
||
|
+ return GRUB_ERR_NET_BAD_ADDRESS;
|
||
|
}
|
||
|
|
||
|
static grub_efi_net_interface_t *
|
||
|
@@ -795,10 +795,7 @@ match_route (const char *server)
|
||
|
err = grub_efi_net_parse_address (server, &ip4, &ip6, &is_ip6, 0);
|
||
|
|
||
|
if (err)
|
||
|
- {
|
||
|
- grub_print_error ();
|
||
|
return NULL;
|
||
|
- }
|
||
|
|
||
|
if (is_ip6)
|
||
|
{
|
||
|
@@ -1233,8 +1230,15 @@ grub_net_open_real (const char *name __attribute__ ((unused)))
|
||
|
/*FIXME: Use DNS translate name to address */
|
||
|
net_interface = match_route (server);
|
||
|
|
||
|
+ if (!net_interface && net_default_interface)
|
||
|
+ {
|
||
|
+ net_interface = net_default_interface;
|
||
|
+ grub_dprintf ("efinet", "interface lookup failed, using default '%s'\n",
|
||
|
+ net_interface->name);
|
||
|
+ }
|
||
|
+
|
||
|
/*XXX: should we check device with default gateway ? */
|
||
|
- if (!net_interface && !(net_interface = net_default_interface))
|
||
|
+ if (!net_interface)
|
||
|
{
|
||
|
grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' no route found"),
|
||
|
name);
|