]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-config.c
ui/ncurses/nc-widgets: Add initial textbox validation functions
[petitboot] / ui / ncurses / nc-config.c
index 4eeeff830aed783a67874bebab16f32a8ba047ed..78e8e9e36e00476920022f661b81f30d19b0f944 100644 (file)
@@ -15,7 +15,9 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#define _GNU_SOURCE
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
 
 #include <errno.h>
 #include <stdlib.h>
@@ -26,7 +28,6 @@
 #include <types/types.h>
 #include <log/log.h>
 
-#include "config.h"
 #include "nc-cui.h"
 #include "nc-config.h"
 #include "nc-widgets.h"
@@ -471,17 +472,22 @@ static void config_screen_setup_widgets(struct config_screen *screen,
                        config_screen_network_change, screen);
 
        screen->widgets.iface_l = widget_new_label(set, 0, 0, "Device:");
-       screen->widgets.iface_f = widget_new_select(set, 0, 0, 20);
+       screen->widgets.iface_f = widget_new_select(set, 0, 0, 50);
 
        for (i = 0; i < sysinfo->n_interfaces; i++) {
                struct interface_info *info = sysinfo->interfaces[i];
+               char str[50], mac[20];
                bool is_default;
 
                is_default = ifcfg && !memcmp(ifcfg->hwaddr, info->hwaddr,
                                        sizeof(ifcfg->hwaddr));
 
+               mac_str(info->hwaddr, info->hwaddr_size, mac, sizeof(mac));
+               snprintf(str, sizeof(str), "%s [%s, %s]", info->name, mac,
+                               info->link ? "link up" : "link down");
+
                widget_select_add_option(screen->widgets.iface_f,
-                                               i, info->name, is_default);
+                                               i, str, is_default);
        }
 
        gw = ip = mask = NULL;
@@ -502,7 +508,7 @@ static void config_screen_setup_widgets(struct config_screen *screen,
        screen->widgets.ip_addr_l = widget_new_label(set, 0, 0, "IP/mask:");
        screen->widgets.ip_addr_f = widget_new_textbox(set, 0, 0, 16, ip);
        screen->widgets.ip_mask_l = widget_new_label(set, 0, 0, "/");
-       screen->widgets.ip_mask_f = widget_new_textbox(set, 0, 0, 3, mask);
+       screen->widgets.ip_mask_f = widget_new_textbox(set, 0, 0, 4, mask);
        screen->widgets.ip_addr_mask_help_l =
                widget_new_label(set, 0, 0, "(eg. 192.168.0.10 / 24)");