[wokkel] issues with disco and entity capabilities.

goffi <[email protected]>
Newsgroups gmane.comp.python.twisted.web
Message-ID <[email protected]>
G'day everybody,

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...

Cheers
Goffi

_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
disco.patch (text/x-diff, 702 B)
diff -r ce13b7c6659c wokkel/disco.py
--- a/wokkel/disco.py	Sun Dec 26 23:15:41 2010 +0100
+++ b/wokkel/disco.py	Tue Feb 08 01:16:34 2011 +0100
@@ -445,8 +445,14 @@
         @param iq: The request iq element.
         @type iq: L{Element<twisted.words.xish.domish.Element>}
         """
-        requestor = jid.internJID(iq["from"])
-        target = jid.internJID(iq["to"])
+        try:
+            requestor = jid.internJID(iq["from"])
+        except KeyError:
+            requestor = None
+        try:
+            target = jid.internJID(iq["to"])
+        except KeyError:
+            target = None
         nodeIdentifier = iq.query.getAttribute("node", '')
 
         def toResponse(info):
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.