aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2010-09-24 13:27:44 +0200
committerTobias Brunner <tobias@strongswan.org>2010-10-14 17:36:19 +0200
commit8a47cd909b8cb8ec99b30f4d3c7bb1e09ffc96cb (patch)
tree7a4b466f0aa946a2093edbafba1a54c4d870263d /src
parent04164cba44e5d3f15147d1002d77ddf5318ff194 (diff)
downloadstrongswan-8a47cd909b8cb8ec99b30f4d3c7bb1e09ffc96cb.tar.bz2
strongswan-8a47cd909b8cb8ec99b30f4d3c7bb1e09ffc96cb.tar.xz
Maemo: Do not store the password in the config file, ask the user for it on demand.
Diffstat (limited to 'src')
-rw-r--r--src/frontends/maemo/src/strongswan-connection.c21
-rw-r--r--src/frontends/maemo/src/strongswan-settings.c22
-rw-r--r--src/frontends/maemo/src/strongswan-status.c72
3 files changed, 66 insertions, 49 deletions
diff --git a/src/frontends/maemo/src/strongswan-connection.c b/src/frontends/maemo/src/strongswan-connection.c
index 28c8f1366..977c0f5a3 100644
--- a/src/frontends/maemo/src/strongswan-connection.c
+++ b/src/frontends/maemo/src/strongswan-connection.c
@@ -29,7 +29,6 @@ struct _StrongswanConnectionPrivate
gchar *host;
gchar *cert;
gchar *user;
- gchar *pass;
};
enum
@@ -39,7 +38,6 @@ enum
PROP_HOST,
PROP_CERT,
PROP_USER,
- PROP_PASS,
};
#ifndef USE_DYNAMIC_TYPES
@@ -73,9 +71,6 @@ strongswan_connection_get_property (GObject *object,
case PROP_USER:
g_value_set_string (value, priv->user);
break;
- case PROP_PASS:
- g_value_set_string (value, priv->pass);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -106,10 +101,6 @@ strongswan_connection_set_property (GObject *object,
g_free (priv->user);
priv->user = g_value_dup_string (value);
break;
- case PROP_PASS:
- g_free (priv->pass);
- priv->pass = g_value_dup_string (value);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -137,7 +128,6 @@ strongswan_connection_finalize (GObject *object)
g_free (priv->host);
g_free (priv->cert);
g_free (priv->user);
- g_free (priv->pass);
G_OBJECT_CLASS (strongswan_connection_parent_class)->finalize (object);
}
@@ -175,12 +165,6 @@ strongswan_connection_class_init (StrongswanConnectionClass *klass)
NULL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (object_class, PROP_PASS,
- g_param_spec_string ("pass", "Password",
- "The password for EAP authentication",
- NULL,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
g_type_class_add_private (klass, sizeof (StrongswanConnectionPrivate));
}
@@ -219,7 +203,6 @@ strongswan_connection_update_from_key_file (GKeyFile *key_file,
priv->host = get_string_from_key_file (key_file, name, "host");
priv->cert = get_string_from_key_file (key_file, name, "cert");
priv->user = get_string_from_key_file (key_file, name, "user");
- priv->pass = get_string_from_key_file (key_file, name, "pass");
}
StrongswanConnection *
@@ -269,9 +252,5 @@ strongswan_connection_save_to_key_file (GKeyFile *key_file,
{
g_key_file_set_string (key_file, name, "user", priv->user);
}
- if (priv->pass)
- {
- g_key_file_set_string (key_file, name, "pass", priv->pass);
- }
}
diff --git a/src/frontends/maemo/src/strongswan-settings.c b/src/frontends/maemo/src/strongswan-settings.c
index 546245024..07f58dc2c 100644
--- a/src/frontends/maemo/src/strongswan-settings.c
+++ b/src/frontends/maemo/src/strongswan-settings.c
@@ -120,44 +120,29 @@ edit_connection (gpointer *parent, StrongswanConnection *conn)
HILDON_CAPTION_OPTIONAL);
gtk_box_pack_start (GTK_BOX (vbox), ucap, TRUE, TRUE, 0);
- GtkWidget *pass = hildon_entry_new (HILDON_SIZE_AUTO);
- hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (pass), "Password");
- hildon_gtk_entry_set_input_mode (GTK_ENTRY (pass),
- HILDON_GTK_INPUT_MODE_FULL |
- HILDON_GTK_INPUT_MODE_INVISIBLE);
- GtkWidget *pcap = hildon_caption_new (group,
- "Password",
- pass,
- NULL,
- HILDON_CAPTION_OPTIONAL);
- gtk_box_pack_start (GTK_BOX (vbox), pcap, TRUE, TRUE, 0);
-
if (conn)
{
- gchar *c_name, *c_host, *c_cert, *c_user, *c_pass;
+ gchar *c_name, *c_host, *c_cert, *c_user;
g_object_get (conn,
"name", &c_name,
"host", &c_host,
"cert", &c_cert,
"user", &c_user,
- "pass", &c_pass,
NULL);
gtk_entry_set_text (GTK_ENTRY (name), c_name);
gtk_entry_set_text (GTK_ENTRY (host), c_host);
hildon_button_set_value (HILDON_BUTTON (cert),
c_cert ? c_cert : "None");
gtk_entry_set_text (GTK_ENTRY (user), c_user);
- gtk_entry_set_text (GTK_ENTRY (pass), c_pass);
g_free (c_name);
g_free (c_host);
g_free (c_cert);
g_free (c_user);
- g_free (c_pass);
}
- gtk_widget_show_all(dialog);
+ gtk_widget_show_all (dialog);
- guint retval = gtk_dialog_run (GTK_DIALOG (dialog));
+ gint retval = gtk_dialog_run (GTK_DIALOG (dialog));
if (retval == GTK_RESPONSE_OK)
{
const gchar *c_name, *c_cert;
@@ -173,7 +158,6 @@ edit_connection (gpointer *parent, StrongswanConnection *conn)
"host", gtk_entry_get_text (GTK_ENTRY (host)),
"cert", c_cert,
"user", gtk_entry_get_text (GTK_ENTRY (user)),
- "pass", gtk_entry_get_text (GTK_ENTRY (pass)),
NULL);
strongswan_connections_save_connection (ListDialog.conns, conn);
}
diff --git a/src/frontends/maemo/src/strongswan-status.c b/src/frontends/maemo/src/strongswan-status.c
index 21ca65184..9a4ce78c0 100644
--- a/src/frontends/maemo/src/strongswan-status.c
+++ b/src/frontends/maemo/src/strongswan-status.c
@@ -107,6 +107,24 @@ update_status_menu (StrongswanStatus *plugin)
}
static void
+update_dialog_connecting (StrongswanStatus *plugin)
+{
+ StrongswanStatusPrivate *priv = plugin->priv;
+
+ gtk_widget_set_sensitive (priv->box, FALSE);
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (priv->dialog), 1);
+}
+
+static void
+update_dialog_default (StrongswanStatus *plugin)
+{
+ StrongswanStatusPrivate *priv = plugin->priv;
+
+ gtk_widget_set_sensitive (priv->box, TRUE);
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (priv->dialog), 0);
+}
+
+static void
dialog_response (GtkDialog *dialog, gint response_id, StrongswanStatus *plugin)
{
StrongswanStatusPrivate *priv = plugin->priv;
@@ -155,20 +173,50 @@ connect_callback (const gchar* interface, const gchar* method,
if (priv->dialog)
{
- gtk_widget_set_sensitive (priv->box, TRUE);
- hildon_gtk_window_set_progress_indicator (GTK_WINDOW (priv->dialog), 0);
-
+ update_dialog_default (plugin);
gtk_dialog_response (GTK_DIALOG (priv->dialog), GTK_RESPONSE_OK);
}
}
-static void
-update_dialog_connecting (StrongswanStatus *plugin)
+static gboolean
+get_password (StrongswanStatus *plugin, gchar **password)
{
StrongswanStatusPrivate *priv = plugin->priv;
-
- gtk_widget_set_sensitive (priv->box, FALSE);
- hildon_gtk_window_set_progress_indicator (GTK_WINDOW (priv->dialog), 1);
+ gboolean result = FALSE;
+
+ GtkWidget *dialog = gtk_dialog_new_with_buttons (
+ "Connecting...",
+ GTK_WINDOW(priv->dialog),
+ GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_OK,
+ NULL);
+ GtkWidget *vbox = GTK_DIALOG (dialog)->vbox;
+ GtkSizeGroup *group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
+ GtkWidget *pass = hildon_entry_new (HILDON_SIZE_AUTO);
+ hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (pass), "Password");
+ hildon_gtk_entry_set_input_mode (GTK_ENTRY (pass),
+ HILDON_GTK_INPUT_MODE_FULL |
+ HILDON_GTK_INPUT_MODE_INVISIBLE);
+ GtkWidget *pcap = hildon_caption_new (group,
+ "Password",
+ pass,
+ NULL,
+ HILDON_CAPTION_OPTIONAL);
+ gtk_box_pack_start (GTK_BOX (vbox), pcap, TRUE, TRUE, 0);
+ gtk_widget_show_all (dialog);
+
+ gint retval = gtk_dialog_run (GTK_DIALOG (dialog));
+ if (retval == GTK_RESPONSE_OK)
+ {
+ *password = g_strdup (gtk_entry_get_text (GTK_ENTRY (pass)));
+ result = TRUE;
+ }
+ gtk_widget_destroy (dialog);
+ return result;
}
static void
@@ -216,11 +264,17 @@ connect_clicked (HildonButton *button, StrongswanStatus *plugin)
}
gchar *c_host, *c_cert, *c_user, *c_pass;
+
+ if (!get_password (plugin, &c_pass))
+ {
+ update_dialog_default (plugin);
+ return;
+ }
+
g_object_get (conn,
"host", &c_host,
"cert", &c_cert,
"user", &c_user,
- "pass", &c_pass,
NULL);
osso_rpc_async_run (priv->context,