From a4b7c2967125b92ba26410cef070eae48b6ea6cd Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 6 Jun 2016 18:32:37 +0200 Subject: fixup! wireless-security: Make broken configuration entries red It must always be allowed to pass NULL as error. --- src/wireless-security/eap-method-fast.c | 9 ++++----- src/wireless-security/eap-method-leap.c | 5 +++-- src/wireless-security/eap-method-simple.c | 5 +++-- src/wireless-security/eap-method-tls.c | 25 +++++++++++++++---------- src/wireless-security/eap-method.c | 11 +++++------ src/wireless-security/ws-leap.c | 5 +++-- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/wireless-security/eap-method-fast.c b/src/wireless-security/eap-method-fast.c index c719c363..255799e3 100644 --- a/src/wireless-security/eap-method-fast.c +++ b/src/wireless-security/eap-method-fast.c @@ -59,8 +59,7 @@ validate (EAPMethod *parent, GError **error) EAPMethod *eap = NULL; const char *file; gboolean provisioning; - gboolean valid = FALSE; - gboolean ret = TRUE; + gboolean valid = TRUE; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_pac_provision_checkbutton")); g_assert (widget); @@ -71,7 +70,7 @@ validate (EAPMethod *parent, GError **error) if (!provisioning && !file) { widget_set_error (widget); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-FAST PAC file")); - ret = FALSE; + valid = FALSE; } else widget_unset_error (widget); @@ -81,9 +80,9 @@ validate (EAPMethod *parent, GError **error) gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); - valid = eap_method_validate (eap, *error ? NULL : error); + valid = eap_method_validate (eap, valid ? error : NULL) && valid; eap_method_unref (eap); - return ret ? valid : ret; + return valid; } static void diff --git a/src/wireless-security/eap-method-leap.c b/src/wireless-security/eap-method-leap.c index 4887d966..2872084e 100644 --- a/src/wireless-security/eap-method-leap.c +++ b/src/wireless-security/eap-method-leap.c @@ -70,9 +70,10 @@ validate (EAPMethod *parent, GError **error) text = gtk_entry_get_text (method->password_entry); if (!text || !strlen (text)) { widget_set_error (GTK_WIDGET (method->password_entry)); - if (!*error) + if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-LEAP password")); - ret = FALSE; + ret = FALSE; + } } else widget_unset_error (GTK_WIDGET (method->password_entry)); diff --git a/src/wireless-security/eap-method-simple.c b/src/wireless-security/eap-method-simple.c index a6c820f4..411bba6d 100644 --- a/src/wireless-security/eap-method-simple.c +++ b/src/wireless-security/eap-method-simple.c @@ -83,9 +83,10 @@ validate (EAPMethod *parent, GError **error) text = gtk_entry_get_text (method->password_entry); if (!text || !strlen (text)) { widget_set_error (GTK_WIDGET (method->password_entry)); - if (!*error) + if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP password")); - ret = FALSE; + ret = FALSE; + } } else widget_unset_error (GTK_WIDGET (method->password_entry)); } diff --git a/src/wireless-security/eap-method-tls.c b/src/wireless-security/eap-method-tls.c index 619d6d5e..6896a151 100644 --- a/src/wireless-security/eap-method-tls.c +++ b/src/wireless-security/eap-method-tls.c @@ -73,15 +73,17 @@ validate (EAPMethod *parent, GError **error) if (!eap_method_validate_filepicker (parent->builder, "eap_tls_ca_cert_button", TYPE_CA_CERT, NULL, NULL, &local)) { widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_ca_cert_button"))); - if (!*error) + if (ret) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA certificate: %s"), local->message); + ret = FALSE; + } g_clear_error (&local); - ret = FALSE; } else if (eap_method_ca_cert_required (parent->builder, "eap_tls_ca_cert_not_required_checkbox", "eap_tls_ca_cert_button")) { widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_ca_cert_button"))); - if (!*error) + if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA certificate: no certificate specified")); - ret = FALSE; + ret = FALSE; + } } widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry")); @@ -89,9 +91,10 @@ validate (EAPMethod *parent, GError **error) password = gtk_entry_get_text (GTK_ENTRY (widget)); if (!password || !strlen (password)) { widget_set_error (widget); - if (!*error) + if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS password: missing")); - ret = FALSE; + ret = FALSE; + } } else { widget_unset_error (widget); } @@ -102,20 +105,22 @@ validate (EAPMethod *parent, GError **error) password, &format, &local)) { - if (!*error) + if (ret) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS private-key: %s"), local->message); + ret = FALSE; + } g_clear_error (&local); widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_button"))); - ret = FALSE; } if (format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) { if (!eap_method_validate_filepicker (parent->builder, "eap_tls_user_cert_button", TYPE_CLIENT_CERT, NULL, NULL, &local)) { - if (!*error) + if (ret) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS user-certificate: %s"), local->message); + ret = FALSE; + } g_clear_error (&local); widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_user_cert_button"))); - ret = FALSE; } } diff --git a/src/wireless-security/eap-method.c b/src/wireless-security/eap-method.c index 90efea1c..c7964cb1 100644 --- a/src/wireless-security/eap-method.c +++ b/src/wireless-security/eap-method.c @@ -229,7 +229,7 @@ eap_method_validate_filepicker (GtkBuilder *builder, filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); if (!filename) { if (item_type != TYPE_CA_CERT) { - widget_set_error (widget); + success = FALSE; g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("no file selected")); } goto out; @@ -237,7 +237,6 @@ eap_method_validate_filepicker (GtkBuilder *builder, if (!g_file_test (filename, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) { success = FALSE; - widget_set_error (widget); goto out; } @@ -256,9 +255,6 @@ eap_method_validate_filepicker (GtkBuilder *builder, } else g_warning ("%s: invalid item type %d.", __func__, item_type); - if (!success) - widget_set_error (widget); - g_object_unref (setting); out: @@ -266,8 +262,11 @@ out: if (!success && error && !*error) g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("unspecified error validating eap-method file")); - else + + if (success) widget_unset_error (widget); + else + widget_set_error (widget); return success; } diff --git a/src/wireless-security/ws-leap.c b/src/wireless-security/ws-leap.c index 9695e35c..83b90bb6 100644 --- a/src/wireless-security/ws-leap.c +++ b/src/wireless-security/ws-leap.c @@ -70,9 +70,10 @@ validate (WirelessSecurity *parent, GError **error) text = gtk_entry_get_text (GTK_ENTRY (entry)); if (!text || !strlen (text)) { widget_set_error (entry); - if (!*error) + if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-password")); - ret = FALSE; + ret = FALSE; + } } else widget_unset_error (entry); -- cgit v1.2.1