network-manager-applet r681 - in trunk: . src/connection-editor
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: network-manager-applet r681 - in trunk: . src/connection-editor
- Date: Thu, 17 Apr 2008 02:15:13 +0100 (BST)
Author: dcbw
Date: Thu Apr 17 02:15:13 2008
New Revision: 681
URL: http://svn.gnome.org/viewvc/network-manager-applet?rev=681&view=rev
Log:
2008-04-16 Dan Williams <dcbw redhat com>
* src/connection-editor/page-dsl.c
src/connection-editor/page-mobile.c
- fetch secrets from the keyring to populate entries with
Modified:
trunk/ChangeLog
trunk/src/connection-editor/page-dsl.c
trunk/src/connection-editor/page-mobile.c
Modified: trunk/src/connection-editor/page-dsl.c
==============================================================================
--- trunk/src/connection-editor/page-dsl.c (original)
+++ trunk/src/connection-editor/page-dsl.c Thu Apr 17 02:15:13 2008
@@ -30,6 +30,7 @@
#include "page-dsl.h"
#include "nm-connection-editor.h"
+#include "gconf-helpers.h"
G_DEFINE_TYPE (CEPageDsl, ce_page_dsl, CE_TYPE_PAGE)
@@ -59,16 +60,40 @@
}
static void
-populate_ui (CEPageDsl *self)
+populate_ui (CEPageDsl *self, NMConnection *connection)
{
CEPageDslPrivate *priv = CE_PAGE_DSL_GET_PRIVATE (self);
NMSettingPPPOE *setting = priv->setting;
+ char *password = setting->password;
+ const char *connection_id;
+ GHashTable *secrets = NULL;
if (setting->username)
gtk_entry_set_text (priv->username, setting->username);
- if (setting->password)
- gtk_entry_set_text (priv->password, setting->password);
+ /* Grab password from keyring if possible */
+ connection_id = g_object_get_data (G_OBJECT (connection), NMA_CONNECTION_ID_TAG);
+ if (!password && connection_id) {
+ GError *error = NULL;
+ GValue *value;
+
+ secrets = nm_gconf_get_keyring_items (connection, connection_id,
+ nm_setting_get_name (NM_SETTING (priv->setting)),
+ FALSE,
+ &error);
+ if (secrets) {
+ value = g_hash_table_lookup (secrets, NM_SETTING_PPPOE_PASSWORD);
+ if (value)
+ password = (char *) g_value_get_string (value);
+ } else
+ g_error_free (error);
+ }
+
+ if (password)
+ gtk_entry_set_text (priv->password, password);
+
+ if (secrets)
+ g_hash_table_destroy (secrets);
if (setting->service)
gtk_entry_set_text (priv->service, setting->service);
@@ -125,7 +150,7 @@
else
priv->setting = NM_SETTING_PPPOE (nm_setting_pppoe_new ());
- populate_ui (self);
+ populate_ui (self, connection);
g_signal_connect (priv->username, "changed", G_CALLBACK (stuff_changed), self);
g_signal_connect (priv->password, "changed", G_CALLBACK (stuff_changed), self);
Modified: trunk/src/connection-editor/page-mobile.c
==============================================================================
--- trunk/src/connection-editor/page-mobile.c (original)
+++ trunk/src/connection-editor/page-mobile.c Thu Apr 17 02:15:13 2008
@@ -31,6 +31,7 @@
#include "page-mobile.h"
#include "nm-connection-editor.h"
+#include "gconf-helpers.h"
G_DEFINE_TYPE (CEPageMobile, ce_page_mobile, CE_TYPE_PAGE)
@@ -82,12 +83,35 @@
priv->puk = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_puk"));
}
+static GHashTable *
+get_secrets (NMConnection *connection, const char *setting_name)
+{
+ const char *connection_id;
+ GError *error = NULL;
+ GHashTable *secrets;
+
+ connection_id = g_object_get_data (G_OBJECT (connection), NMA_CONNECTION_ID_TAG);
+ if (!connection_id)
+ return NULL;
+
+ secrets = nm_gconf_get_keyring_items (connection, connection_id,
+ setting_name,
+ FALSE,
+ &error);
+ if (!secrets)
+ g_error_free (error);
+
+ return secrets;
+}
+
static void
-populate_gsm_ui (CEPageMobile *self)
+populate_gsm_ui (CEPageMobile *self, NMConnection *connection)
{
CEPageMobilePrivate *priv = CE_PAGE_MOBILE_GET_PRIVATE (self);
NMSettingGsm *setting = NM_SETTING_GSM (priv->setting);
int type_idx;
+ GHashTable *secrets;
+ GValue *value;
if (setting->number)
gtk_entry_set_text (priv->number, setting->number);
@@ -95,9 +119,6 @@
if (setting->username)
gtk_entry_set_text (priv->username, setting->username);
- if (setting->password)
- gtk_entry_set_text (priv->password, setting->password);
-
if (setting->apn)
gtk_entry_set_text (priv->apn, setting->apn);
@@ -126,18 +147,43 @@
/* FIXME: band */
+ secrets = get_secrets (connection, nm_setting_get_name (priv->setting));
+
+ if (setting->password)
+ gtk_entry_set_text (priv->password, setting->password);
+ else if (secrets) {
+ value = g_hash_table_lookup (secrets, NM_SETTING_GSM_PASSWORD);
+ if (value)
+ gtk_entry_set_text (priv->password, g_value_get_string (value));
+ }
+
if (setting->pin)
gtk_entry_set_text (priv->pin, setting->pin);
+ else if (secrets) {
+ value = g_hash_table_lookup (secrets, NM_SETTING_GSM_PIN);
+ if (value)
+ gtk_entry_set_text (priv->pin, g_value_get_string (value));
+ }
if (setting->puk)
gtk_entry_set_text (priv->pin, setting->puk);
+ else if (secrets) {
+ value = g_hash_table_lookup (secrets, NM_SETTING_GSM_PUK);
+ if (value)
+ gtk_entry_set_text (priv->puk, g_value_get_string (value));
+ }
+
+ if (secrets)
+ g_hash_table_destroy (secrets);
}
static void
-populate_cdma_ui (CEPageMobile *self)
+populate_cdma_ui (CEPageMobile *self, NMConnection *connection)
{
CEPageMobilePrivate *priv = CE_PAGE_MOBILE_GET_PRIVATE (self);
NMSettingCdma *setting = NM_SETTING_CDMA (priv->setting);
+ GHashTable *secrets;
+ GValue *value;
if (setting->number)
gtk_entry_set_text (priv->number, setting->number);
@@ -145,8 +191,18 @@
if (setting->username)
gtk_entry_set_text (priv->username, setting->username);
+ secrets = get_secrets (connection, nm_setting_get_name (priv->setting));
+
if (setting->password)
gtk_entry_set_text (priv->password, setting->password);
+ else if (secrets) {
+ value = g_hash_table_lookup (secrets, NM_SETTING_CDMA_PASSWORD);
+ if (value)
+ gtk_entry_set_text (priv->password, g_value_get_string (value));
+ }
+
+ if (secrets)
+ g_hash_table_destroy (secrets);
/* Hide GSM specific widgets */
gtk_widget_hide (glade_xml_get_widget (CE_PAGE (self)->xml, "mobile_basic_label"));
@@ -154,14 +210,14 @@
}
static void
-populate_ui (CEPageMobile *self)
+populate_ui (CEPageMobile *self, NMConnection *connection)
{
CEPageMobilePrivate *priv = CE_PAGE_MOBILE_GET_PRIVATE (self);
if (NM_IS_SETTING_GSM (priv->setting))
- populate_gsm_ui (self);
+ populate_gsm_ui (self, connection);
else if (NM_IS_SETTING_CDMA (priv->setting))
- populate_cdma_ui (self);
+ populate_cdma_ui (self, connection);
else
g_error ("Invalid setting");
}
@@ -228,7 +284,7 @@
}
priv->setting = nm_setting_duplicate (setting);
- populate_ui (self);
+ populate_ui (self, connection);
g_signal_connect (priv->number, "changed", G_CALLBACK (stuff_changed), self);
g_signal_connect (priv->username, "changed", G_CALLBACK (stuff_changed), self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]