[Bug 20768] Support more ways to be invisible (XEP-0186, maybe XEP-0126, maybe whatever Google does)

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jun 24 02:49:23 CEST 2010


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

--- Comment #19 from Eitan Isaacson <eitan.isaacson at collabora.co.uk> 2010-06-23 17:49:23 PDT ---
(In reply to comment #17)
> Remaining issues, as described in the WIP patch at the top of my branch:
> 
> 
>     This patch is WIP because it breaks invisible_fallbacks.py (given that
>     it deletes the fallbacks that patch checks), because we should also have
>     tests for setting ourselves to invisible failing once the connection is
>     up and running (checking that Gabble reverts you to either your previous
>     presence, or DND, as we wish),

I am fine not having fallbacks, I guess we need to expect servers to generally
work.

> and because we need to look up existing
>     privacy lists to fix this case:
> 
>     • Gabble #1 signs in
>     • Gabble #1 creates a list called 'invisible', and activates it.
>     • Gabble #2 also signs in
>     • Gabble #2 tries to create a list called 'invisible', but it fails
>       because you can't replace privacy lists that are in use, so it gives
>       up on invisibility.

>From my XEP parsing, this is not a real issue. Creating a list and editing a
list are semantically the same (XEP-0016 2.6 & 2.7). When you edit a list that
is active in another resource, you don't get an error (although the other
client gets a push notification). In other words a 'invisible' list creation
stanza is guaranteed to not return a <conflict /> error from the server.

The case we need to look out for is when Gabble #2 signs in and "creates" a
list, Gabble #1 will get a privacy list push notification, which in turn it
needs to retrieve the list, see that it is still the standard 'invisible' list,
and carry on.

If client #2 is a rogue client (Let's call in GAIM ;), and is doing it's own
weird crap to the 'invisible' list, then we need to gracefully step out of it's
way, by creating and activating a list called 'invisible-gabble'.

If client #1 is rogue, when Gabble #2 signs in, it will clobber #1's
'invisible' list. If #1 listens for push notifications and fights back by
re-editing 'invisible', Gabble #2 will step out by creating 'invisible-gabble'.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the telepathy-bugs mailing list