Personally I think the client version information should be carried in the disco#info using XEP-0128 using a new special FORM_TYPE (maybe even reusing using jabber:iq:version and using its elements as the xdata field names).

Or it could be split out as a separate attribute.

  <c xmlns='http://jabber.org/protocol/caps'
     node='http://exodus.jabberstudio.org/'
     ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='
     v='0.9.1'/>

Where the v attribute SHOULD be included.

So, we ripped the version out, reused the ver tag as a hash of the nodeless disco query results, then have decided you can no longer query on that (since the hash may change as features are added/ removed, and so the hash is not necessarily a valid disco node)... and now we are putting the version back into caps, albeit in a different attribute.

To me, this begs the question of why we do not simply:

  <c xmlns='http://jabber.org/protocol/caps'
     node='http://exodus.jabberstudio.org/'
     ver='0.9.1'
     hash='8RovUdtOmiAjzj+xI7SK5BCw3A8=' algo='sha1'/>


In the new version, the 'ver' option would be /optional/; if present, you do still need to present your base options to legacy clients, but will continue to interoperate with legacy clients fine, and -- for newer ones -- will have not only the nice hash for verification, but the version for display purposes. :)

--
Rachel Blackman <[EMAIL PROTECTED]>
Trillian Messenger - http://www.trillianastra.com/


Reply via email to