Summary: | initially connecting as invisible problematic since last week | ||
---|---|---|---|
Product: | Telepathy | Reporter: | mehmet.giritli |
Component: | gabble | Assignee: | Marco Barisione <marco.barisione> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | normal | ||
Priority: | medium | Keywords: | patch |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
URL: | http://cgit.collabora.com/git/user/bari/telepathy-gabble.git/log/?h=initial-invisibility | ||
Whiteboard: | review+ | ||
i915 platform: | i915 features: | ||
Attachments: | gabble log |
Description
mehmet.giritli
2011-06-27 01:59:29 UTC
Created attachment 48454 [details]
gabble log
Attached log file is taken after disconnecting gabble and then trying to reconnect as invisible with the result getting busy status and finally manually switching to invisible again successfully.
I took a quick look over the log: gabble/connection-DEBUG: 27/06/11 11:58:22.703319: get_shared_status_async (conn-presence.c:1066): wocky-DEBUG: 27/06/11 11:58:22.703511: _write_node_tree: Serializing tree: * iq xmlns='jabber:client' type='get' to='mehmet.giritli@googlemail.com' id='524836703456' * query xmlns='google:shared-status' version='2' * iq xmlns='jabber:client' to='mehmet.giritli@googlemail.com/4a46a42c' from='mehmet.giritli@googlemail.com' id='524836703456' type='result' * query xmlns='google:shared-status' status-min-ver='3' status-max='512' status-list-max='3' status-list-contents-max='5' status-min-ver=3! Gabble checks for exactly version '2' to determine whether to support invisibility. So then we set our own status, specifying status-min-ver='2', which causes the server to echo stuff back to us with that minimum version, at which point Gabble miraculously discovers that it can do invisibility after all. I took a look at <http://code.google.com/apis/talk/jep_extensions/shared_status.html>, which makes no reference to version 3 (all examples are version 2). It says: > Clients can use status-min-ver information to optionally display hints in the user interface when a user tries to select invisible mode while logged in with a client that does not support invisibility. and: > Allowed values are: > true: User is invisible. Google Talk will not advertise presence for clients that support shared-status version 2 or higher. So: (a) we could write to Google and be all like “hey what's new in version 3” (b) we could make Gabble check for version ≥ 2, and just assume that they won't have broken the protocol backwards-incompatibly… (In reply to comment #2) > (b) we could make Gabble check for version ≥ 2, and just assume that they > won't have broken the protocol backwards-incompatibly… Could you share a patch for this option so that I can give it a test? I reckon it would be a simple patch to change this, right? (In reply to comment #2) > (a) we could write to Google and be all like “hey what's new in version 3” > (b) we could make Gabble check for version ≥ 2, and just assume that they > won't have broken the protocol backwards-incompatibly… These 2 options don't seem mutually exclusive to me. (In reply to comment #2) > (b) we could make Gabble check for version ≥ 2, and just assume that they > won't have broken the protocol backwards-incompatibly… This is wrong. The server gives us initially its version (if no other resource is connected), but then it switches to speak the most recent version supported by all the connected resources. If we get a version we don't understand it just means that the server and everybody else will have to speak the same version as ours. I put a branch with a fix at http://cgit.collabora.com/git/user/bari/telepathy-gabble.git/log/?h=initial-invisibility I forgot to say that the branch is based on the stable 0.12 branch as it's a low risk fix to a regression. The branch looks A-OK. Feel free to merge it to 0.12. Pushed to the stable branch and merged it to master. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.