[gnome-control-center] network: Move EAPMethod property to a virtual method
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] network: Move EAPMethod property to a virtual method
- Date: Wed, 27 Nov 2019 22:10:49 +0000 (UTC)
commit 426896b7a2c97cdaf0ba39c2071edc91770bfde7
Author: Robert Ancell <robert ancell canonical com>
Date: Thu Nov 7 10:20:34 2019 +1300
network: Move EAPMethod property to a virtual method
panels/network/wireless-security/eap-method-fast.c | 4 ++--
panels/network/wireless-security/eap-method-leap.c | 4 ++--
panels/network/wireless-security/eap-method-peap.c | 4 ++--
.../network/wireless-security/eap-method-simple.c | 15 ++++++++++----
panels/network/wireless-security/eap-method-tls.c | 23 +++++++++++++++-------
panels/network/wireless-security/eap-method-ttls.c | 4 ++--
panels/network/wireless-security/eap-method.c | 21 +++++++++++++++-----
panels/network/wireless-security/eap-method.h | 10 ++++++----
8 files changed, 57 insertions(+), 28 deletions(-)
---
diff --git a/panels/network/wireless-security/eap-method-fast.c
b/panels/network/wireless-security/eap-method-fast.c
index 5f3fc5ad1..475ea1008 100644
--- a/panels/network/wireless-security/eap-method-fast.c
+++ b/panels/network/wireless-security/eap-method-fast.c
@@ -334,8 +334,8 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- FALSE);
+ NULL,
+ destroy);
if (!parent)
return NULL;
diff --git a/panels/network/wireless-security/eap-method-leap.c
b/panels/network/wireless-security/eap-method-leap.c
index f33a41dea..ef427eafc 100644
--- a/panels/network/wireless-security/eap-method-leap.c
+++ b/panels/network/wireless-security/eap-method-leap.c
@@ -218,8 +218,8 @@ eap_method_leap_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- FALSE);
+ NULL,
+ destroy);
if (!parent)
return NULL;
diff --git a/panels/network/wireless-security/eap-method-peap.c
b/panels/network/wireless-security/eap-method-peap.c
index 3514c4911..25b700f18 100644
--- a/panels/network/wireless-security/eap-method-peap.c
+++ b/panels/network/wireless-security/eap-method-peap.c
@@ -342,8 +342,8 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- FALSE);
+ NULL,
+ destroy);
if (!parent)
return NULL;
diff --git a/panels/network/wireless-security/eap-method-simple.c
b/panels/network/wireless-security/eap-method-simple.c
index 594e95640..599b440f6 100644
--- a/panels/network/wireless-security/eap-method-simple.c
+++ b/panels/network/wireless-security/eap-method-simple.c
@@ -140,11 +140,11 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
/* If this is the main EAP method, clear any existing methods because the
* user-selected on will replace it.
*/
- if (parent->phase2 == FALSE)
+ if (eap_method_get_phase2 (parent) == FALSE)
nm_setting_802_1x_clear_eap_methods (s_8021x);
eap_type = &eap_table[self->type];
- if (parent->phase2) {
+ if (eap_method_get_phase2 (parent)) {
/* If the outer EAP method (TLS, TTLS, PEAP, etc) allows inner/phase2
* EAP methods (which only TTLS allows) *and* the inner/phase2 method
* supports being an inner EAP method, then set PHASE2_AUTHEAP.
@@ -212,6 +212,13 @@ get_password_flags_name (EAPMethod *parent)
return NM_SETTING_802_1X_PASSWORD;
}
+static const gboolean
+get_phase2 (EAPMethod *parent)
+{
+ EAPMethodSimple *self = (EAPMethodSimple *) parent;
+ return self->flags & EAP_METHOD_SIMPLE_FLAG_PHASE2;
+}
+
static gboolean
stuff_changed (EAPMethodSimple *self)
{
@@ -315,8 +322,8 @@ eap_method_simple_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- flags & EAP_METHOD_SIMPLE_FLAG_PHASE2);
+ get_phase2,
+ destroy);
if (!parent)
return NULL;
diff --git a/panels/network/wireless-security/eap-method-tls.c
b/panels/network/wireless-security/eap-method-tls.c
index 58550a82d..13e85689a 100644
--- a/panels/network/wireless-security/eap-method-tls.c
+++ b/panels/network/wireless-security/eap-method-tls.c
@@ -50,6 +50,7 @@ struct _EAPMethodTLS {
GtkFileChooserButton *user_cert_button;
GtkLabel *user_cert_label;
+ gboolean phase2;
const gchar *password_flags_name;
WirelessSecurity *sec_parent;
gboolean editing_connection;
@@ -172,7 +173,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
s_8021x = nm_connection_get_setting_802_1x (connection);
g_assert (s_8021x);
- if (parent->phase2)
+ if (self->phase2)
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "tls", NULL);
else
nm_setting_802_1x_add_eap_method (s_8021x, "tls");
@@ -185,7 +186,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->private_key_button));
g_assert (pk_filename);
- if (parent->phase2) {
+ if (self->phase2) {
g_autoptr(GError) error = NULL;
if (!nm_setting_802_1x_set_phase2_private_key (s_8021x, pk_filename, password,
NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error))
g_warning ("Couldn't read phase2 private key '%s': %s", pk_filename, error ?
error->message : "(unknown)");
@@ -217,7 +218,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
g_assert (cc_filename);
format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
- if (parent->phase2) {
+ if (self->phase2) {
g_autoptr(GError) error = NULL;
if (!nm_setting_802_1x_set_phase2_client_cert (s_8021x, cc_filename,
NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error))
g_warning ("Couldn't read phase2 client certificate '%s': %s", cc_filename,
error ? error->message : "(unknown)");
@@ -232,7 +233,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->ca_cert_button));
format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
- if (parent->phase2) {
+ if (self->phase2) {
g_autoptr(GError) error = NULL;
if (!nm_setting_802_1x_set_phase2_ca_cert (s_8021x, ca_filename,
NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
g_warning ("Couldn't read phase2 CA certificate '%s': %s", ca_filename, error ?
error->message : "(unknown)");
@@ -381,7 +382,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
PathFunc path_func;
const char *filename;
- if (parent->phase2) {
+ if (self->phase2) {
password_func = (HelperSecretFunc) nm_setting_802_1x_get_phase2_private_key_password;
scheme_func = nm_setting_802_1x_get_phase2_private_key_scheme;
path_func = nm_setting_802_1x_get_phase2_private_key_path;
@@ -426,6 +427,13 @@ get_password_flags_name (EAPMethod *parent)
return self->password_flags_name;
}
+static gboolean
+get_phase2 (EAPMethod *parent)
+{
+ EAPMethodTLS *self = (EAPMethodTLS *) parent;
+ return self->phase2;
+}
+
EAPMethodTLS *
eap_method_tls_new (WirelessSecurity *ws_parent,
NMConnection *connection,
@@ -446,12 +454,13 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- phase2);
+ get_phase2,
+ destroy);
if (!parent)
return NULL;
self = (EAPMethodTLS *) parent;
+ self->phase2 = phase2;
self->password_flags_name = phase2 ?
NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD :
NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD;
diff --git a/panels/network/wireless-security/eap-method-ttls.c
b/panels/network/wireless-security/eap-method-ttls.c
index 8295357f5..9a9553dec 100644
--- a/panels/network/wireless-security/eap-method-ttls.c
+++ b/panels/network/wireless-security/eap-method-ttls.c
@@ -395,8 +395,8 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
get_widget,
get_default_field,
get_password_flags_name,
- destroy,
- FALSE);
+ NULL,
+ destroy);
if (!parent)
return NULL;
diff --git a/panels/network/wireless-security/eap-method.c b/panels/network/wireless-security/eap-method.c
index 721b80cea..3bad3d9b6 100644
--- a/panels/network/wireless-security/eap-method.c
+++ b/panels/network/wireless-security/eap-method.c
@@ -74,6 +74,17 @@ eap_method_get_password_flags_name (EAPMethod *self)
return NULL;
}
+gboolean
+eap_method_get_phase2 (EAPMethod *self)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ if (self->get_phase2)
+ return self->get_phase2 (self);
+ else
+ return FALSE;
+}
+
gboolean
eap_method_validate (EAPMethod *self, GError **error)
{
@@ -145,8 +156,8 @@ eap_method_init (gsize obj_size,
EMGetWidgetFunc get_widget,
EMGetWidgetFunc get_default_field,
EMGetStringFunc get_password_flags_name,
- EMDestroyFunc destroy,
- gboolean phase2)
+ EMGetBooleanFunc get_phase2,
+ EMDestroyFunc destroy)
{
g_autoptr(EAPMethod) self = NULL;
@@ -164,8 +175,8 @@ eap_method_init (gsize obj_size,
self->get_widget = get_widget;
self->get_default_field = get_default_field;
self->get_password_flags_name = get_password_flags_name;
+ self->get_phase2 = get_phase2;
self->destroy = destroy;
- self->phase2 = phase2;
return g_steal_pointer (&self);
}
@@ -528,7 +539,7 @@ eap_method_ca_cert_ignore_set (EAPMethod *self,
if (s_8021x) {
ignore = !ca_cert_error && filename == NULL;
g_object_set_data (G_OBJECT (s_8021x),
- self->phase2 ? IGNORE_PHASE2_CA_CERT_TAG : IGNORE_CA_CERT_TAG,
+ eap_method_get_phase2 (self) ? IGNORE_PHASE2_CA_CERT_TAG :
IGNORE_CA_CERT_TAG,
GUINT_TO_POINTER (ignore));
}
}
@@ -549,7 +560,7 @@ eap_method_ca_cert_ignore_get (EAPMethod *self, NMConnection *connection)
s_8021x = nm_connection_get_setting_802_1x (connection);
if (s_8021x) {
return !!g_object_get_data (G_OBJECT (s_8021x),
- self->phase2 ? IGNORE_PHASE2_CA_CERT_TAG : IGNORE_CA_CERT_TAG);
+ eap_method_get_phase2 (self) ? IGNORE_PHASE2_CA_CERT_TAG :
IGNORE_CA_CERT_TAG);
}
return FALSE;
}
diff --git a/panels/network/wireless-security/eap-method.h b/panels/network/wireless-security/eap-method.h
index bd8875a8c..199dbfc06 100644
--- a/panels/network/wireless-security/eap-method.h
+++ b/panels/network/wireless-security/eap-method.h
@@ -34,13 +34,12 @@ typedef void (*EMDestroyFunc) (EAPMethod *method);
typedef gboolean (*EMValidateFunc) (EAPMethod *method, GError **error);
typedef GtkWidget* (*EMGetWidgetFunc) (EAPMethod *method);
typedef const gchar* (*EMGetStringFunc) (EAPMethod *method);
+typedef gboolean (*EMGetBooleanFunc) (EAPMethod *method);
struct _EAPMethod {
guint32 refcount;
gsize obj_size;
- gboolean phase2;
-
EMAddToSizeGroupFunc add_to_size_group;
EMFillConnectionFunc fill_connection;
EMUpdateSecretsFunc update_secrets;
@@ -48,6 +47,7 @@ struct _EAPMethod {
EMGetWidgetFunc get_widget;
EMGetWidgetFunc get_default_field;
EMGetStringFunc get_password_flags_name;
+ EMGetBooleanFunc get_phase2;
EMDestroyFunc destroy;
};
@@ -60,6 +60,8 @@ GtkWidget *eap_method_get_default_field (EAPMethod *method);
const gchar *eap_method_get_password_flags_name (EAPMethod *method);
+gboolean eap_method_get_phase2 (EAPMethod *method);
+
gboolean eap_method_validate (EAPMethod *method, GError **error);
void eap_method_add_to_size_group (EAPMethod *method, GtkSizeGroup *group);
@@ -84,8 +86,8 @@ EAPMethod *eap_method_init (gsize obj_size,
EMGetWidgetFunc get_widget,
EMGetWidgetFunc get_default_field,
EMGetStringFunc get_password_flags_name,
- EMDestroyFunc destroy,
- gboolean phase2);
+ EMGetBooleanFunc get_phase2,
+ EMDestroyFunc destroy);
GtkFileFilter * eap_method_default_file_chooser_filter_new (gboolean privkey);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]