empathy r798 - trunk/libempathy
- From: xclaesse svn gnome org
- To: svn-commits-list gnome org
- Subject: empathy r798 - trunk/libempathy
- Date: Sun, 16 Mar 2008 12:48:24 +0000 (GMT)
Author: xclaesse
Date: Sun Mar 16 12:48:24 2008
New Revision: 798
URL: http://svn.gnome.org/viewvc/empathy?rev=798&view=rev
Log:
Retry requesting aliases if it fails, it can happen if there is too many aliases to request and it takes too much time
Modified:
trunk/libempathy/empathy-contact.c
trunk/libempathy/empathy-tp-contact-factory.c
Modified: trunk/libempathy/empathy-contact.c
==============================================================================
--- trunk/libempathy/empathy-contact.c (original)
+++ trunk/libempathy/empathy-contact.c Sun Mar 16 12:48:24 2008
@@ -423,7 +423,7 @@
g_free (priv->name);
priv->name = g_strdup (name);
contact_set_ready_flag (contact, EMPATHY_CONTACT_READY_NAME,
- !G_STR_EMPTY (name));
+ name != NULL);
g_object_notify (G_OBJECT (contact), "name");
}
Modified: trunk/libempathy/empathy-tp-contact-factory.c
==============================================================================
--- trunk/libempathy/empathy-tp-contact-factory.c (original)
+++ trunk/libempathy/empathy-tp-contact-factory.c Sun Mar 16 12:48:24 2008
@@ -215,13 +215,35 @@
gpointer user_data,
GObject *tp_factory)
{
- guint *handles = user_data;
- guint i = 0;
- const gchar **name;
+ EmpathyTpContactFactoryPriv *priv = GET_PRIV (tp_factory);
+ guint *handles = user_data;
+ guint i = 0;
+ const gchar **name;
if (error) {
+ GArray handles_array;
+ guint size = 0;
+
empathy_debug (DEBUG_DOMAIN, "Error requesting aliases: %s",
error->message);
+
+ /* FIXME: Sometimes the dbus call timesout because CM takes
+ * too much time to request all aliases from the server,
+ * that's why we retry. */
+ while (handles[size] != 0) {
+ size++;
+ }
+ handles = g_memdup (handles, size * sizeof (guint));
+ handles_array.len = size;
+ handles_array.data = (gchar*) handles;
+
+ tp_cli_connection_interface_aliasing_call_request_aliases (priv->connection,
+ -1,
+ &handles_array,
+ tp_contact_factory_request_aliases_cb,
+ handles, g_free,
+ G_OBJECT (tp_factory));
+
return;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]