[network-manager-applet/ce-highlight-invalid-bgo767210: 3/3] fixup! wireless-security: Make broken configuration entries red



commit a4b7c2967125b92ba26410cef070eae48b6ea6cd
Author: Thomas Haller <thaller redhat com>
Date:   Mon Jun 6 18:32:37 2016 +0200

    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 c719c36..255799e 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 4887d96..2872084 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 a6c820f..411bba6 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 619d6d5..6896a15 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 90efea1..c7964cb 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 9695e35..83b90bb 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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]