While implementing Entity Capabilities (XEP-0115) on my client, I faced
2 issues with Wokkel:
- if we have a disco info request with no "to" or "from" attribute (seen
with Prosody), a KeyError exception is raised. The attached patch fix it.
- I generate the hash with the result of disco.DiscoHandler.info with no
node, and that include everything like VersionHandler's
"jabber:iq:version" feature. That was working great with Prosody and
Openfire, but not with Ejabberd (the notification for PEP was not
included). After some investigations, I realised that jabber:iq:version
feature is not added when there is a node in disco info request, and
that's the case with XEP-0115, so the features list was different to the
one used to generate the hash, and ejabberd was (silently :( ) rejecting
it; resulting in no notification for Personal Eventing Protocol.
I temporarily fixed the issue by overriding
generic.VersionHandler.getDiscoInfo and forcing the node parameter to
None, but this case should be managed in Wokkel.
I have (partially) implemented XEP-0115 in my XMPP client (Salut à Toi:
http://wiki.goffi.org/wiki/Salut_%C3%A0_Toi ), but it would be nice to
add it to Wokkel.
Last but not least, I have said a few months ago that I'd like to
improve MUC branch for mainstream inclusion, I'm still interested in
that, as my client is based on Twisted/Wokkel and I need MUC (I was just
too busy so far to contribute on it :) ), but I need the help of Ralph
Meijer or at least a Twisted guru if he is too busy to know exactly how
and what. For the moment I need to make a dirty hack in my setup.py to
use the MUC branch in my project...