[Telepathy] [PATCH] TelepathyQt4: Various bugs + patches to fix them
Andre Moreira Magalhaes
andre.magalhaes at collabora.co.uk
Mon Jun 15 11:33:00 PDT 2009
Hey,
First thanks for the helping, below are some comments about the patches
George Kiagiadakis wrote:
> Hello everyone,
>
> I have been playing with Tp::AbstractClientApprover and
> Tp::ChannelDispatchOperation this weekend in order to implement an approver
> for my gsoc project (kcall) and I have found some bugs in the implementation
> of those classes in TelepathyQt4. I am attaching some patches to fix them:
>
> Patch 0001 adds a finished() signal in ChannelDispatchOperation in order to
> compy with the specification (I needed to use this signal, so I added it).
>
>
We need to decide whether to use invalidated or finished here. We
usually emit invalidated for DBusProxy objects that are no longer
available (Channel.Clone, Connection.Disconnected, ...). I will discuss
this with the other devs and see what is the best approach here, but
yes, either way we need some mechanism to indicate the operation
finished. Thanks for spotting this.
> Patch 0002 makes ClientApproverAdaptor use the full name of the Connection
> property ("org.freedesktop.Telepathy.ChannelDispatchOperation.Connection") to
> read the Connection object path from the properties that are passed to its
> AddDispatchOperation method, in order to compy with the spec. Before I fix
> that, it would crash a while after the channel dispatcher had called this
> method, because the Connection object was assumed to be valid, although it
> wasn't.
>
>
This is wrong, the property _is_ Connection as stated on the spec:
|
Properties| − |a{sv}| (Qualified_Property_Value_Map
<http://telepathy.freedesktop.org/spec.html#type-Qualified_Property_Value_Map>)
Properties of the channel dispatch operation. This MUST NOT include
properties that could change, SHOULD include as many properties as
possible given that constraint, and MUST include at least the
Account
<http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.ChannelDispatchOperation.Account>,
Connection
<http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.ChannelDispatchOperation.Connection>
and PossibleHandlers
<http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.ChannelDispatchOperation.PossibleHandlers>
properties.
If your CD version is giving you a different property, it's wrong, and
the CD must be fixed. What CD (MC) version are you using? We can discuss
this on #telepathy at freenode if you prefer.
> Patch 0003 makes ChannelDispatchOperation read the "Channels" property from
> the remote ChannelDispatchOperation object instead of reading
> "ChannelDetailsLIst", which doesn't exist. This didn't crash before, but the
> channels() method of ChannelDispatchOperation would return an empty list,
> which is wrong.
>
>
This is correct, good catch, I will apply this to my branch, and should
be on next release.
Next time it would be great if you could use a git tree somewhere, it's
easier to review the patches and to apply them.
Thanks again
BR
Andrunko
More information about the telepathy
mailing list