summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-06-06 18:32:37 +0200
committerThomas Haller <thaller@redhat.com>2016-06-06 19:11:01 +0200
commita4b7c2967125b92ba26410cef070eae48b6ea6cd (patch)
tree5b4f7e9d2cefe5f992849014a38bc28a933e3acd
parent0a747fa86f35950f5ce55de0141676bd8617189b (diff)
downloadnetwork-manager-applet-ce-highlight-invalid-bgo767210.tar.gz
fixup! wireless-security: Make broken configuration entries redce-highlight-invalid-bgo767210
It must always be allowed to pass NULL as error.
-rw-r--r--src/wireless-security/eap-method-fast.c9
-rw-r--r--src/wireless-security/eap-method-leap.c5
-rw-r--r--src/wireless-security/eap-method-simple.c5
-rw-r--r--src/wireless-security/eap-method-tls.c25
-rw-r--r--src/wireless-security/eap-method.c11
-rw-r--r--src/wireless-security/ws-leap.c5
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);