[next] telepathy-glib: TpConnection: don' t block introspection if the self-contact changes

Simon McVittie smcv at kemper.freedesktop.org
Mon Oct 8 08:23:45 PDT 2012


Module: telepathy-glib
Branch: next
Commit: b14caa3f7f5cd789d3cb02fc2dc9ec47c28154c1
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=b14caa3f7f5cd789d3cb02fc2dc9ec47c28154c1

Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Mon Oct  8 14:30:41 2012 +0100

TpConnection: don't block introspection if the self-contact changes

If the self-contact changes while we're introspecting it,
the upgrade callback for the old self-contact does nothing, and we'll
wait forever - unless we introspect the *new* self-contact, to get
back on track.

Unfortunately, we deleted the test-case for this on the 1.0 branch.
It's a little harder to test, because introspecting the self-contact
is usually instantaneous (the exception being if we force a round-trip
while adding features).

---

 telepathy-glib/connection.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/telepathy-glib/connection.c b/telepathy-glib/connection.c
index 79c1503..83f04ff 100644
--- a/telepathy-glib/connection.c
+++ b/telepathy-glib/connection.c
@@ -795,7 +795,8 @@ on_self_contact_changed (TpConnection *self,
   g_free (self->priv->last_known_self_id);
   self->priv->last_known_self_id = g_strdup (self_id);
 
-  if (tp_connection_get_status (self, NULL) == TP_CONNECTION_STATUS_CONNECTED)
+  if (self->priv->introspecting_after_connected ||
+      tp_connection_get_status (self, NULL) == TP_CONNECTION_STATUS_CONNECTED)
     get_self_contact (self);
 }
 



More information about the telepathy-commits mailing list