summaryrefslogtreecommitdiff
path: root/src/protocol.c
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-07-15 14:28:02 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-07-15 16:22:17 +0100
commit993ea5cf35ecec2d9f46a865bf7dbb86e70f1a4e (patch)
tree9329f292703371ac56ad57a797d4e05f66940c5a /src/protocol.c
parent8105efd7dedce68c51b964f588e593e17bc9943a (diff)
downloadtelepathy-haze-993ea5cf35ecec2d9f46a865bf7dbb86e70f1a4e.tar.gz
Pass username, password to HazeConnection as separate properties
Diffstat (limited to 'src/protocol.c')
-rw-r--r--src/protocol.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/protocol.c b/src/protocol.c
index f16365d..37c28cb 100644
--- a/src/protocol.c
+++ b/src/protocol.c
@@ -617,16 +617,33 @@ haze_protocol_new_connection (TpBaseProtocol *base,
{
HazeProtocol *self = HAZE_PROTOCOL (base);
HazeConnection *conn;
+ gchar *username;
+ gchar *password;
GHashTable *purple_params = haze_protocol_translate_parameters (self, asv);
+ username = haze_protocol_get_username (purple_params, self->priv->prpl_info,
+ TRUE);
+ g_return_val_if_fail (username != NULL, FALSE);
+
+ password = g_strdup (tp_asv_get_string (purple_params, "password"));
+
+ if (password != NULL)
+ {
+ g_hash_table_remove (purple_params, "password");
+ }
+
conn = g_object_new (HAZE_TYPE_CONNECTION,
"protocol", tp_base_protocol_get_name (base),
"prpl-id", self->priv->prpl_id,
"prpl-info", self->priv->prpl_info,
"parameters", purple_params,
+ "username", username,
+ "password", password,
NULL);
g_hash_table_unref (purple_params);
+ g_free (username);
+ g_free (password);
if (!haze_connection_create_account (conn, error))
{