Hello community, here is the log from the commit of package NetworkManager-gnome for openSUSE:12.1:Update:Test checked in at 2012-01-10 15:01:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.1:Update:Test/NetworkManager-gnome (Old) and /work/SRC/openSUSE:12.1:Update:Test/.NetworkManager-gnome.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "NetworkManager-gnome", Maintainer is "gnome-maintainers@suse.de" Changes: -------- --- /work/SRC/openSUSE:12.1:Update:Test/NetworkManager-gnome/NetworkManager-gnome.changes 2012-01-03 17:43:07.000000000 +0100 +++ /work/SRC/openSUSE:12.1:Update:Test/.NetworkManager-gnome.new/NetworkManager-gnome.changes 2012-01-10 15:01:38.000000000 +0100 @@ -1,0 +2,6 @@ +Tue Jan 3 02:30:00 UTC 2012 - glin@suse.com + +- Add NetworkManager-gnome-eap-tls-probe-subject.patch to probe the + CA subject of the EAP-TLS RADIUS server. (bnc#574266) + +------------------------------------------------------------------- New: ---- NetworkManager-gnome-eap-tls-probe-subject.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ NetworkManager-gnome.spec ++++++ --- /var/tmp/diff_new_pack.sSDqsB/_old 2012-01-10 15:01:38.000000000 +0100 +++ /var/tmp/diff_new_pack.sSDqsB/_new 2012-01-10 15:01:38.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package NetworkManager-gnome # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -53,6 +53,8 @@ Patch5: NetworkManager-gnome-hide-ws-page-note.patch # PATCH-FIX-OPENSUSE NetworkManager-gnome-private-connections-by-default.patch bnc#731812 glin@suse.com -- Create the private connections by default Patch6: NetworkManager-gnome-private-connections-by-default.patch +# PATCH-FIX-UPSTREAM NetworkManager-gnome-eap-tls-probe-subject.patch bnc#574266 glin@suse.com -- Probe the CA subject of the EAP-TLS RADIUS server +Patch7: NetworkManager-gnome-eap-tls-probe-subject.patch Provides: NetworkManager-client Requires: NetworkManager >= 0.9.1 # needed for translated country names @@ -94,6 +96,7 @@ %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 %build %configure \ ++++++ NetworkManager-gnome-eap-tls-probe-subject.patch ++++++ diff --git a/src/libnm-gtk/nm-wireless-dialog.c b/src/libnm-gtk/nm-wireless-dialog.c index 9c156e2..6bd3f76 100644 --- a/src/libnm-gtk/nm-wireless-dialog.c +++ b/src/libnm-gtk/nm-wireless-dialog.c @@ -137,7 +137,9 @@ nma_wireless_dialog_need_cert_probe (NMAWirelessDialog *self) for (i = 0; i < num_eap; i++) { const char *eap; eap = nm_setting_802_1x_get_eap_method (s_8021x, i); - if (g_strcmp0 (eap, "ttls") == 0 || g_strcmp0 (eap, "peap") == 0) { + if ( g_strcmp0 (eap, "ttls") == 0 + || g_strcmp0 (eap, "peap") == 0 + || g_strcmp0 (eap, "tls") == 0) { need_ca = TRUE; break; } diff --git a/src/wireless-security/eap-method-tls.c b/src/wireless-security/eap-method-tls.c index e161a93..b8bb189 100644 --- a/src/wireless-security/eap-method-tls.c +++ b/src/wireless-security/eap-method-tls.c @@ -33,6 +33,8 @@ #include "wireless-security.h" #include "helpers.h" +#define SUBJECT_NOTE _("<will be filled automatically>") + struct _EAPMethodTLS { EAPMethod parent; }; @@ -105,6 +107,10 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) g_assert (widget); gtk_size_group_add_widget (group, widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_subject_label")); + g_assert (widget); + gtk_size_group_add_widget (group, widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_label")); g_assert (widget); gtk_size_group_add_widget (group, widget); @@ -121,6 +127,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection) NMSetting8021x *s_8021x; GtkWidget *widget; char *ca_filename, *pk_filename, *cc_filename; + const char *subject; const char *password = NULL; GError *error = NULL; @@ -202,6 +209,12 @@ fill_connection (EAPMethod *parent, NMConnection *connection) g_clear_error (&error); } } + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_subject_entry")); + g_assert (widget); + subject = gtk_entry_get_text (GTK_ENTRY (widget)); + if (subject && strlen (subject) && g_strcmp0 (subject, SUBJECT_NOTE) != 0) + g_object_set (s_8021x, NM_SETTING_802_1X_SUBJECT_MATCH, subject, NULL); } static void @@ -370,6 +383,37 @@ update_secrets (EAPMethod *parent, NMConnection *connection) } } +static gboolean +subject_entry_focus_in_cb (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) +{ + const char *text = gtk_entry_get_text (GTK_ENTRY (widget)); + if (g_strcmp0 (text, SUBJECT_NOTE) == 0) { + gtk_entry_set_text (GTK_ENTRY (widget), ""); + gtk_widget_override_color (widget, GTK_STATE_FLAG_NORMAL, NULL); + } + return FALSE; +} + +static gboolean +subject_entry_focus_out_cb (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) +{ + const char *text = gtk_entry_get_text (GTK_ENTRY (widget)); + GtkStyleContext *context; + GdkRGBA color; + + if (!text || !strlen (text)) { + gtk_entry_set_text (GTK_ENTRY (widget), SUBJECT_NOTE); + context = gtk_widget_get_style_context (widget); + gtk_style_context_get_color (context, GTK_STATE_FLAG_INSENSITIVE, &color); + gtk_widget_override_color (widget, GTK_STATE_FLAG_NORMAL, &color); + } + return FALSE; +} + EAPMethodTLS * eap_method_tls_new (WirelessSecurity *ws_parent, NMConnection *connection, @@ -418,6 +462,31 @@ eap_method_tls_new (WirelessSecurity *ws_parent, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : nm_setting_802_1x_get_ca_cert_scheme, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : nm_setting_802_1x_get_ca_cert_path, FALSE, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_subject_entry")); + if (s_8021x) { + const char *text = nm_setting_802_1x_get_subject_match (s_8021x); + if (!text) { + GtkStyleContext *context; + GdkRGBA color; + context = gtk_widget_get_style_context (widget); + gtk_style_context_get_color (context, GTK_STATE_FLAG_INSENSITIVE, &color); + gtk_widget_override_color (widget, GTK_STATE_FLAG_NORMAL, &color); + gtk_entry_set_text (GTK_ENTRY (widget), SUBJECT_NOTE); + } else { + gtk_entry_set_text (GTK_ENTRY (widget), text); + } + g_signal_connect (G_OBJECT (widget), "focus-in-event", + (GCallback) subject_entry_focus_in_cb, + NULL); + g_signal_connect (G_OBJECT (widget), "focus-out-event", + (GCallback) subject_entry_focus_out_cb, + NULL); + } + g_signal_connect (G_OBJECT (widget), "changed", + (GCallback) wireless_security_changed_cb, + ws_parent); + setup_filepicker (parent->builder, "eap_tls_private_key_button", _("Choose your private key..."), ws_parent, parent, s_8021x, @@ -456,6 +525,10 @@ eap_method_tls_new (WirelessSecurity *ws_parent, gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_ca_cert_button")); gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_subject_label")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_subject_entry")); + gtk_widget_hide (widget); } return (EAPMethodTLS *) parent; diff --git a/src/wireless-security/eap-method-tls.ui b/src/wireless-security/eap-method-tls.ui index a643965..a46edb8 100644 --- a/src/wireless-security/eap-method-tls.ui +++ b/src/wireless-security/eap-method-tls.ui @@ -9,7 +9,7 @@ <child> <object class="GtkTable" id="table8"> <property name="visible">True</property> - <property name="n_rows">6</property> + <property name="n_rows">7</property> <property name="n_columns">2</property> <property name="column_spacing">12</property> <property name="row_spacing">6</property> @@ -54,12 +54,12 @@ </packing> </child> <child> - <object class="GtkLabel" id="eap_tls_ca_cert_label"> + <object class="GtkLabel" id="eap_tls_subject_label"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">C_A certificate:</property> + <property name="label" translatable="yes">CA _subject:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">eap_tls_ca_cert_button</property> + <property name="mnemonic_widget">eap_tls_subject_entry</property> </object> <packing> <property name="top_attach">2</property> @@ -69,14 +69,43 @@ </packing> </child> <child> - <object class="GtkFileChooserButton" id="eap_tls_ca_cert_button"> + <object class="GtkEntry" id="eap_tls_subject_entry"> <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="activates_default">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="eap_tls_ca_cert_label"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">C_A certificate:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">eap_tls_ca_cert_button</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkFileChooserButton" id="eap_tls_ca_cert_button"> + <property name="visible">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> @@ -90,8 +119,8 @@ <property name="mnemonic_widget">eap_tls_private_key_button</property> </object> <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> @@ -103,8 +132,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> @@ -118,8 +147,8 @@ <property name="mnemonic_widget">eap_tls_private_key_password_entry</property> </object> <packing> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> @@ -134,8 +163,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> <property name="y_options"/> </packing> </child> @@ -151,8 +180,8 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">5</property> - <property name="bottom_attach">6</property> + <property name="top_attach">6</property> + <property name="bottom_attach">7</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org