mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +00:00
bootp: ignore gateway_ip (relay) field.
From RFC1542: The 'giaddr' field is rather poorly named. It exists to facilitate the transfer of BOOTREQUEST messages from a client, through BOOTP relay agents, to servers on different networks than the client. Similarly, it facilitates the delivery of BOOTREPLY messages from the servers, through BOOTP relay agents, back to the client. In no case does it represent a general IP router to be used by the client. A BOOTP client MUST set the 'giaddr' field to zero (0.0.0.0) in all BOOTREQUEST messages it generates. A BOOTP client MUST NOT interpret the 'giaddr' field of a BOOTREPLY message to be the IP address of an IP router. A BOOTP client SHOULD completely ignore the contents of the 'giaddr' field in BOOTREPLY messages. Leave code ifdef'd out for the time being in case we see regression. Suggested by: Rink Springer <rink@rink.nu> Closes: 43396
This commit is contained in:
1 parent
2498dc7a3a
commit
a666c8bd18
2 files changed
+11
-2
No files matched your search
@@ -157,6 +157,12 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
hwaddr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET;
|
||||
|
||||
inter = grub_net_add_addr (name, card, &addr, &hwaddr, flags);
|
||||
#if 0
|
||||
/* This is likely based on misunderstanding. gateway_ip refers to
|
||||
address of BOOTP relay and should not be used after BOOTP transaction
|
||||
is complete.
|
||||
See RFC1542, 3.4 Interpretation of the 'giaddr' field
|
||||
*/
|
||||
if (bp->gateway_ip)
|
||||
{
|
||||
grub_net_network_level_netaddress_t target;
|
||||
@@ -178,6 +184,7 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
target.ipv4.masksize = 32;
|
||||
grub_net_add_route (name, target, inter);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (size > OFFSET_OF (boot_file, bp))
|
||||
grub_env_set_net_property (name, "boot_file", bp->boot_file,
|
||||
|
||||
Reference in new issue
Block a user