network-manager-applet r631 - in trunk: . src/wireless-security



Author: dcbw
Date: Mon Mar 31 03:03:19 2008
New Revision: 631
URL: http://svn.gnome.org/viewvc/network-manager-applet?rev=631&view=rev

Log:
2008-03-30  Dan Williams  <dcbw redhat com>

	* src/wireless-security/ws-leap.c
		- (ws_leap_new): fill leap password and username

	* src/wireless-security/eap-method-tls.c
		- (eap_method_tls_new): fill passwords, identity, and certificates



Modified:
   trunk/ChangeLog
   trunk/src/wireless-security/eap-method-tls.c
   trunk/src/wireless-security/ws-leap.c

Modified: trunk/src/wireless-security/eap-method-tls.c
==============================================================================
--- trunk/src/wireless-security/eap-method-tls.c	(original)
+++ trunk/src/wireless-security/eap-method-tls.c	Mon Mar 31 03:03:19 2008
@@ -309,10 +309,13 @@
 setup_filepicker (GladeXML *xml,
                   const char *name,
                   const char *title,
-                  WirelessSecurity *parent)
+                  WirelessSecurity *parent,
+                  NMConnection *connection,
+                  const char *tag)
 {
 	GtkWidget *widget;
 	GtkFileFilter *filter;
+	const char *filename;
 
 	widget = glade_xml_get_widget (xml, name);
 	g_assert (widget);
@@ -321,6 +324,11 @@
 	g_signal_connect (G_OBJECT (widget), "selection-changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
+	if (connection && tag) {
+		filename = g_object_get_data (G_OBJECT (connection), tag);
+		if (filename)
+			gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
+	}
 
 	filter = eap_method_default_file_chooser_filter_new ();
 	gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
@@ -336,6 +344,7 @@
 	GtkWidget *widget;
 	GladeXML *xml;
 	GladeXML *nag_dialog_xml;
+	NMSetting8021x *s_8021x = NULL;
 
 	g_return_val_if_fail (glade_file != NULL, NULL);
 
@@ -377,33 +386,53 @@
 
 	method->phase2 = phase2;
 
-	if (connection)
+	if (connection) {
 		method->ignore_ca_cert = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), NMA_CA_CERT_IGNORE_TAG));
 
+		s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
+	}
+
 	widget = glade_xml_get_widget (xml, "eap_tls_identity_entry");
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
+	if (s_8021x && s_8021x->identity)
+		gtk_entry_set_text (GTK_ENTRY (widget), s_8021x->identity);
 
 	widget = glade_xml_get_widget (xml, "eap_tls_private_key_password_entry");
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
+	/* Fill secrets, if any */
+	if (connection) {
+		GHashTable *secrets;
+		GError *error = NULL;
+		GValue *value;
+
+		secrets = nm_gconf_get_keyring_items (connection, NM_SETTING_802_1X_SETTING_NAME, &error);
+		if (secrets) {
+			value = g_hash_table_lookup (secrets, NMA_PRIVATE_KEY_PASSWORD_TAG);
+			if (value)
+				gtk_entry_set_text (GTK_ENTRY (widget), g_value_get_string (value));
+			g_hash_table_destroy (secrets);
+		}
+	}
 
-	setup_filepicker (xml,
-	                  "eap_tls_user_cert_button",
+	setup_filepicker (xml, "eap_tls_user_cert_button",
 	                  _("Choose your personal certificate..."),
-	                  parent);
-	setup_filepicker (xml,
-	                  "eap_tls_ca_cert_button",
+	                  parent, connection,
+	                  phase2 ? NMA_PATH_PHASE2_CLIENT_CERT_TAG : NMA_PATH_CLIENT_CERT_TAG);
+	setup_filepicker (xml, "eap_tls_ca_cert_button",
 	                  _("Choose a Certificate Authority certificate..."),
-	                  parent);
+	                  parent, connection,
+	                  phase2 ? NMA_PATH_PHASE2_CA_CERT_TAG : NMA_PATH_CA_CERT_TAG);
 	setup_filepicker (xml,
 	                  "eap_tls_private_key_button",
 	                  _("Choose your private key..."),
-	                  parent);
+	                  parent, connection,
+	                  phase2 ? NMA_PATH_PHASE2_PRIVATE_KEY_TAG : NMA_PATH_PRIVATE_KEY_TAG);
 
 	widget = glade_xml_get_widget (xml, "show_checkbutton");
 	g_assert (widget);

Modified: trunk/src/wireless-security/ws-leap.c
==============================================================================
--- trunk/src/wireless-security/ws-leap.c	(original)
+++ trunk/src/wireless-security/ws-leap.c	Mon Mar 31 03:03:19 2008
@@ -25,6 +25,7 @@
 
 #include "wireless-security.h"
 #include "utils.h"
+#include "gconf-helpers.h"
 
 
 static void
@@ -115,6 +116,7 @@
 	WirelessSecurityLEAP *sec;
 	GtkWidget *widget;
 	GladeXML *xml;
+	NMSettingWirelessSecurity *wsec = NULL;
 
 	g_return_val_if_fail (glade_file != NULL, NULL);
 
@@ -143,17 +145,41 @@
 	                        xml,
 	                        widget);
 
+	if (connection) {
+		wsec = NM_SETTING_WIRELESS_SECURITY (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY));
+		if (wsec) {
+			/* Ignore if wireless security doesn't specify LEAP */
+			if (!wsec->auth_alg || strcmp (wsec->auth_alg, "leap"))
+				wsec = NULL;
+		}
+	}
+
 	widget = glade_xml_get_widget (xml, "leap_password_entry");
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  sec);
+	if (wsec) {
+		GHashTable *secrets;
+		GError *error = NULL;
+		GValue *value;
+
+		secrets = nm_gconf_get_keyring_items (connection, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, &error);
+		if (secrets) {
+			value = g_hash_table_lookup (secrets, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD);
+			if (value)
+				gtk_entry_set_text (GTK_ENTRY (widget), g_value_get_string (value));
+			g_hash_table_destroy (secrets);
+		}
+	}
 
 	widget = glade_xml_get_widget (xml, "leap_username_entry");
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  sec);
+	if (wsec)
+		gtk_entry_set_text (GTK_ENTRY (widget), wsec->leap_username);
 
 	widget = glade_xml_get_widget (xml, "show_checkbutton");
 	g_assert (widget);



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