sizeof (bp->boot_file));
if (is_def)
grub_net_default_server = 0;
- if (size > OFFSET_OF (server_name, bp)
- && bp->server_name[0])
- {
- set_env_limn_ro (name, "dhcp_server_name", (char *) bp->server_name,
- sizeof (bp->server_name));
- if (is_def && !grub_net_default_server)
- {
- grub_net_default_server = grub_strdup (bp->server_name);
- grub_print_error ();
- }
- if (device && !*device)
- {
- *device = grub_xasprintf ("tftp,%s", bp->server_name);
- grub_print_error ();
- }
- }
- if (is_def && !grub_net_default_server)
+ 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_print_error ();
}
- if (device && !*device)
+ 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)[3]);
grub_print_error ();
}
+ if (size > OFFSET_OF (server_name, bp)
+ && bp->server_name[0])
+ {
+ set_env_limn_ro (name, "dhcp_server_name", (char *) bp->server_name,
+ sizeof (bp->server_name));
+ if (is_def && !grub_net_default_server)
+ {
+ grub_net_default_server = grub_strdup (bp->server_name);
+ grub_print_error ();
+ }
+ if (device && !*device)
+ {
+ *device = grub_xasprintf ("tftp,%s", bp->server_name);
+ grub_print_error ();
+ }
+ }
+
if (size > OFFSET_OF (boot_file, bp) && path)
{
*path = grub_strndup (bp->boot_file, sizeof (bp->boot_file));