+ screen->widgets.ip_mask_f = widget_new_textbox(set, 0, 0, 3, mask);
+ screen->widgets.ip_addr_mask_help_l =
+ widget_new_label(set, 0, 0, _("(eg. 192.168.0.10 / 24)"));
+
+ widget_textbox_set_fixed_size(screen->widgets.ip_addr_f);
+ widget_textbox_set_fixed_size(screen->widgets.ip_mask_f);
+ widget_textbox_set_validator_ipv4(screen->widgets.ip_addr_f);
+ widget_textbox_set_validator_integer(screen->widgets.ip_mask_f, 1, 31);
+
+ screen->widgets.gateway_l = widget_new_label(set, 0, 0, _("Gateway:"));
+ screen->widgets.gateway_f = widget_new_textbox(set, 0, 0, 16, gw);
+ screen->widgets.gateway_help_l =
+ widget_new_label(set, 0, 0, _("(eg. 192.168.0.1)"));
+
+ widget_textbox_set_fixed_size(screen->widgets.gateway_f);
+ widget_textbox_set_validator_ipv4(screen->widgets.gateway_f);
+
+ screen->widgets.url_l = widget_new_label(set, 0, 0, _("URL:"));
+ screen->widgets.url_f = widget_new_textbox(set, 0, 0, 32, url);
+ screen->widgets.url_help_l =
+ widget_new_label(set, 0, 0, _("(eg. tftp://)"));
+
+ str = talloc_strdup(screen, "");
+ for (i = 0; i < config->network.n_dns_servers; i++) {
+ str = talloc_asprintf_append(str, "%s%s",
+ (i == 0) ? "" : " ",
+ config->network.dns_servers[i]);
+ }
+
+ screen->widgets.dns_l = widget_new_label(set, 0, 0,
+ _("DNS Server(s):"));
+ screen->widgets.dns_f = widget_new_textbox(set, 0, 0, 32, str);
+ screen->widgets.dns_help_l =
+ widget_new_label(set, 0, 0, _("(eg. 192.168.0.2)"));
+
+ widget_textbox_set_validator_ipv4_multi(screen->widgets.dns_f);
+
+ screen->widgets.dns_dhcp_help_l = widget_new_label(set, 0, 0,
+ _("(if not provided by DHCP server)"));
+
+ if (config->safe_mode)
+ screen->widgets.safe_mode = widget_new_label(set, 0, 0,
+ _("Selecting 'OK' will exit safe mode"));
+
+ screen->widgets.allow_write_l = widget_new_label(set, 0, 0,
+ _("Disk R/W:"));
+ screen->widgets.allow_write_f = widget_new_select(set, 0, 0,
+ COLS - screen->field_x - 1);
+
+ widget_select_add_option(screen->widgets.allow_write_f, 0,
+ _("Prevent all writes to disk"),
+ !config->allow_writes);
+
+ widget_select_add_option(screen->widgets.allow_write_f, 1,
+ _("Allow bootloader scripts to modify disks"),
+ config->allow_writes);
+
+ screen->widgets.boot_console_l = widget_new_label(set, 0, 0,
+ _("Boot console:"));
+ screen->widgets.boot_console_f = widget_new_select(set, 0, 0,
+ COLS - screen->field_x - 1);
+
+ for (i = 0; i < config->n_consoles; i++){
+ found = config->boot_console &&
+ strncmp(config->boot_console, config->consoles[i],
+ strlen(config->boot_console)) == 0;
+ widget_select_add_option(screen->widgets.boot_console_f, i,
+ config->consoles[i], found);
+ }