diff options
author | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2013-05-08 13:07:34 +0200 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2013-05-08 13:07:34 +0200 |
commit | 3157284e58195cab12a404752f7d96e3c4ea650b (patch) | |
tree | 749061f9dc3e70351660f3e9fc521800a7405df7 | |
parent | 57e62a7871be3209fca3046aaf99cdd055fef59d (diff) |
X-TELEPATHY-PASSWORD is not supported if username isn't known
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64354
-rw-r--r-- | src/auth-manager.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/auth-manager.c b/src/auth-manager.c index 992645e43..ad60d0883 100644 --- a/src/auth-manager.c +++ b/src/auth-manager.c @@ -320,6 +320,17 @@ gabble_auth_manager_start_auth_async (WockyAuthRegistry *registry, GPtrArray *mech_array = g_ptr_array_new (); GSList *iter; + if (username == NULL) + { + g_object_get (self->priv->conn, + "username", &self->priv->username, + NULL); + } + else + { + self->priv->username = g_strdup (username); + } + for (iter = mechanisms; iter != NULL; iter = iter->next) { self->priv->mechanisms = g_slist_prepend (self->priv->mechanisms, @@ -330,7 +341,8 @@ gabble_auth_manager_start_auth_async (WockyAuthRegistry *registry, g_ptr_array_add (mech_array, iter->data); } - if (wocky_auth_registry_supports_one_of (registry, mechanisms, + if (self->priv->username != NULL && + wocky_auth_registry_supports_one_of (registry, mechanisms, allow_plain)) g_ptr_array_add (mech_array, X_TELEPATHY_PASSWORD); @@ -344,17 +356,6 @@ gabble_auth_manager_start_auth_async (WockyAuthRegistry *registry, self->priv->server = g_strdup (server); self->priv->session_id = g_strdup (session_id); - if (username == NULL) - { - g_object_get (self->priv->conn, - "username", &self->priv->username, - NULL); - } - else - { - self->priv->username = g_strdup (username); - } - self->priv->channel = gabble_server_sasl_channel_new (self->priv->conn, (GStrv) mech_array->pdata, is_secure_channel, session_id); g_ptr_array_unref (mech_array); |