The name of the DHCP server responsible for these boot parameters.
Read-only.
+@item net_@var{<interface>}_next_server
+The IP address of the next (usually, TFTP) server provided by DHCP.
+Read-only.
+
@item net_default_interface
Initially set to name of network interface that was used to load grub.
Read-write, although setting it affects only interpretation of
* net_@var{<interface>}_hostname::
* net_@var{<interface>}_ip::
* net_@var{<interface>}_mac::
+* net_@var{<interface>}_next_server::
* net_@var{<interface>}_rootpath::
* net_default_interface::
* net_default_ip::
@xref{Network}.
+@node net_@var{<interface>}_next_server
+@subsection net_@var{<interface>}_next_server
+
+@xref{Network}.
+
+
@node net_@var{<interface>}_rootpath
@subsection net_@var{<interface>}_rootpath
grub_net_link_level_address_t hwaddr;
struct grub_net_network_level_interface *inter;
int mask = -1;
+ char server_ip[sizeof ("xxx.xxx.xxx.xxx")];
addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4;
addr.ipv4 = bp->your_ip;
if (size > OFFSET_OF (boot_file, bp))
grub_env_set_net_property (name, "boot_file", bp->boot_file,
sizeof (bp->boot_file));
+ if (bp->server_ip)
+ {
+ grub_snprintf (server_ip, sizeof (server_ip), "%d.%d.%d.%d",
+ ((grub_uint8_t *) &bp->server_ip)[0],
+ ((grub_uint8_t *) &bp->server_ip)[1],
+ ((grub_uint8_t *) &bp->server_ip)[2],
+ ((grub_uint8_t *) &bp->server_ip)[3]);
+ grub_env_set_net_property (name, "next_server", server_ip, sizeof (server_ip));
+ grub_print_error ();
+ }
+
if (is_def)
grub_net_default_server = 0;
if (is_def && !grub_net_default_server && bp->server_ip)
{
- grub_net_default_server = grub_xasprintf ("%d.%d.%d.%d",
- ((grub_uint8_t *) &bp->server_ip)[0],
- ((grub_uint8_t *) &bp->server_ip)[1],
- ((grub_uint8_t *) &bp->server_ip)[2],
- ((grub_uint8_t *) &bp->server_ip)[3]);
+ grub_net_default_server = grub_strdup (server_ip);
grub_print_error ();
}
if (device && !*device && bp->server_ip)
{
- *device = grub_xasprintf ("tftp,%d.%d.%d.%d",
- ((grub_uint8_t *) &bp->server_ip)[0],
- ((grub_uint8_t *) &bp->server_ip)[1],
- ((grub_uint8_t *) &bp->server_ip)[2],
- ((grub_uint8_t *) &bp->server_ip)[3]);
+ *device = grub_xasprintf ("tftp,%s", server_ip);
grub_print_error ();
}
if (size > OFFSET_OF (server_name, bp)