From fb8dbd274b4b2c4df52d09d2fe303ccdacdf546b Mon Sep 17 00:00:00 2001 From: Samuel Mendoza-Jonas Date: Mon, 26 Feb 2018 15:58:10 +1100 Subject: ui/ncurses: Validate URL field Make sure the URL field is a valid URL before allowing the user to proceed. Signed-off-by: Samuel Mendoza-Jonas --- ui/ncurses/nc-widgets.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'ui/ncurses/nc-widgets.c') diff --git a/ui/ncurses/nc-widgets.c b/ui/ncurses/nc-widgets.c index 15cec80..93c882b 100644 --- a/ui/ncurses/nc-widgets.c +++ b/ui/ncurses/nc-widgets.c @@ -53,6 +53,7 @@ #include #include #include +#include #include "nc-cui.h" #include "nc-widgets.h" @@ -83,6 +84,7 @@ struct nc_widgetset { /* custom validators */ FIELDTYPE *ipv4_multi_type; + FIELDTYPE *url_type; }; struct nc_widget { @@ -399,6 +401,20 @@ void widget_textbox_set_validator_integer(struct nc_widget_textbox *textbox, set_field_type(textbox->widget.field, TYPE_INTEGER, 1, min, max); } +static bool check_url_field(FIELD *field, + const void *arg __attribute__((unused))) +{ + return is_url(field_buffer(field, 0)); +} + +void widget_textbox_set_validator_url(struct nc_widget_textbox *textbox) +{ + if (!textbox->set->url_type) + textbox->set->url_type = new_fieldtype(check_url_field, NULL); + + set_field_type(textbox->widget.field, textbox->set->url_type); +} + void widget_textbox_set_validator_ipv4(struct nc_widget_textbox *textbox) { set_field_type(textbox->widget.field, TYPE_IPV4); -- cgit v1.2.1