[Bug 70134] Gabble: implement ClientTypes.RequestClientTypes()

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Oct 4 07:30:51 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=70134

--- Comment #2 from Simon McVittie <simon.mcvittie at collabora.co.uk> ---
Comment on attachment 87122
  --> https://bugs.freedesktop.org/attachment.cgi?id=87122
client-types: implement RequestClientTypes()

Review of attachment 87122:
 --> (https://bugs.freedesktop.org/page.cgi?id=splinter.html&bug=70134&attachment=87122)
-----------------------------------------------------------------

::: src/conn-client-types.c
@@ +153,5 @@
> +      g_error_free (error);
> +      return;
> +    }
> +
> +  DEBUG ("GetClientTypes called on the following handle: %u", contact);

That isn't its name.

@@ +157,5 @@
> +  DEBUG ("GetClientTypes called on the following handle: %u", contact);
> +
> +  if (!get_client_types_from_handle (conn, contact, &types))
> +    {
> +      DEBUG ("  waiting for disco reply");

Do we not have API for "disco them and wait for a response" already?

If we can't see the presence of any of their resources, shouldn't we give up
immediately, rather than timing out?

@@ +160,5 @@
> +    {
> +      DEBUG ("  waiting for disco reply");
> +
> +      g_hash_table_insert (conn->client_types_pending,
> +              GUINT_TO_POINTER (contact), context);

If two RequestClientTypes calls overlap, the first one will never get a reply
and the resources will never be freed.

Similarly, if we never get a disco result for that contact, we'll never send a
reply and the resources will never be freed.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the telepathy-bugs mailing list