diff --git a/docs/grub.texi b/docs/grub.texi index 4af22aff8..88bd75f38 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -5162,8 +5162,10 @@ by @var{shortname} which can be used to remove it (@pxref{net_del_route}). Perform configuration of @var{card} using DHCP protocol. If no card name is specified, try to configure all existing cards. If configuration was successful, interface with name @var{card}@samp{:dhcp} and configured -address is added to @var{card}. If server provided gateway information in -DHCP ACK packet, it is added as route entry with the name @var{card}@samp{:dhcp:gw}. Additionally the following DHCP options are recognized and processed: +address is added to @var{card}. +@comment If server provided gateway information in +@comment DHCP ACK packet, it is added as route entry with the name @var{card}@samp{:dhcp:gw}. +Additionally the following DHCP options are recognized and processed: @table @samp @item 1 (Subnet Mask) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c index 613675533..4fdeac3ef 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -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,