[telepathy-gabble/master] Set RemoteCredentials and emit RemoteCredentialsSet.
Mike Ruprecht
mike.ruprecht at collabora.co.uk
Tue Dec 29 05:35:08 PST 2009
---
src/call-stream-endpoint.c | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/src/call-stream-endpoint.c b/src/call-stream-endpoint.c
index 2afaadd..8f801e6 100644
--- a/src/call-stream-endpoint.c
+++ b/src/call-stream-endpoint.c
@@ -451,6 +451,36 @@ call_stream_endpoint_set_selected_candidate (
g_boxed_copy (GABBLE_STRUCT_TYPE_CANDIDATE, candidate);
gabble_svc_call_stream_endpoint_emit_candidate_selected (self, candidate);
+
+ if (self->priv->selected_candidate != NULL &&
+ self->priv->selected_candidate->n_values >= 4)
+ {
+ GValue *value = g_value_array_get_nth (
+ self->priv->selected_candidate, 3);
+ GHashTable *info = g_value_get_boxed (value);
+ const gchar *username, *password;
+
+ username = tp_asv_get_string (info, "Username");
+ password = tp_asv_get_string (info, "Password");
+
+ if ((username != NULL && username[0] != 0) ||
+ (password != NULL && password[0] != 0))
+ {
+ if (self->priv->remote_credentials != NULL)
+ g_boxed_free (dbus_g_type_get_struct ("GValueArray",
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID),
+ self->priv->remote_credentials);
+
+ self->priv->remote_credentials = gabble_value_array_build (2,
+ G_TYPE_STRING, g_strdup (username),
+ G_TYPE_STRING, g_strdup (password),
+ G_TYPE_INVALID);
+
+ gabble_svc_call_stream_endpoint_emit_remote_credentials_set (self,
+ username, password);
+ }
+ }
+
gabble_svc_call_stream_endpoint_return_from_set_selected_candidate (context);
return;
--
1.5.6.5
More information about the telepathy-commits
mailing list