Some messages will generate a exception like the one below, if they are
missing the ID attribute.
Traceback (most recent call last):
[snip]
File "[...]/pymsnt-0.10/src/disco.py", line 135, in onIq
handler(el)
File "[...]/pymsnt-0.10/src/misciq.py", line 273, in incomingIq
self.pytrans.send(iq)
File
"/usr/lib/python2.4/site-packages/twisted/words/protocols/jabber/component.py",
line 84, in send
self.parent.send(obj)
File
"/usr/lib/python2.4/site-packages/twisted/words/protocols/jabber/component.py",
line 151, in send
self.xmlstream.send(obj)
File "/usr/lib/python2.4/site-packages/twisted/xish/xmlstream.py", line 179,
in send
obj = obj.toXml()
File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line 400, in
toXml
s.serialize(self, closeElement)
File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line 86, in
serialize
write((" %s='%s'" % ( k, escapeToXml(v, 1))).encode("utf-8"))
File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line 198, in
escapeToXml
text = text.replace("&", "&")
exceptions.AttributeError: 'NoneType' object has no attribute 'replace'
A patch to check for missing ID attributes is attached.
Best regards,
Lars
-------------- next part --------------
Index: misciq.py
===================================================================
RCS file: /home/cvs/msn-transport/PyMSNt/src/misciq.py,v
retrieving revision 1.4.2.30
diff -u -r1.4.2.30 misciq.py
--- misciq.py 11 Sep 2005 01:59:41 -0000 1.4.2.30
+++ misciq.py 19 Oct 2005 16:39:49 -0000
@@ -172,7 +172,8 @@
iq = Element((None, "iq"))
iq.attributes["to"] = to
iq.attributes["from"] = config.jid
- iq.attributes["id"] = ID
+ if(ID):
+ iq.attributes["id"] = ID
iq.attributes["type"] = "result"
query = iq.addElement("query")
@@ -251,7 +252,8 @@
iq = Element((None, "iq"))
iq.attributes["to"] = fro
iq.attributes["from"] = to
- iq.attributes["id"] = ID
+ if(ID):
+ iq.attributes["id"] = ID
iq.attributes["type"] = "result"
vCard = iq.addElement("vCard")
vCard.attributes["xmlns"] = "vcard-temp"
@@ -307,7 +309,8 @@
iq = Element((None, "iq"))
iq.attributes["to"] = fro
iq.attributes["from"] = to
- iq.attributes["id"] = ID
+ if(ID):
+ iq.attributes["id"] = ID
iq.attributes["type"] = "result"
query = iq.addElement("query")
query.attributes["xmlns"] = "jabber:iq:avatar"
@@ -381,7 +384,8 @@
iq.attributes["type"] = "result"
iq.attributes["from"] = config.jid
iq.attributes["to"] = to
- iq.attributes["id"] = ID
+ if(ID):
+ iq.attributes["id"] = ID
query = iq.addElement("query")
query.attributes["xmlns"] = "jabber:iq:gateway"
desc = query.addElement("desc")
@@ -410,7 +414,8 @@
iq.attributes["type"] = "result"
iq.attributes["from"] = config.jid
iq.attributes["to"] = to
- iq.attributes["id"] = ID
+ if(ID):
+ iq.attributes["id"] = ID
query = iq.addElement("query")
query.attributes["xmlns"] = "jabber:iq:gateway"
prompt = query.addElement("prompt")
Index: register.py
===================================================================
RCS file: /home/cvs/msn-transport/PyMSNt/src/register.py,v
retrieving revision 1.6.2.8
diff -u -r1.6.2.8 register.py
--- register.py 10 Sep 2005 10:12:26 -0000 1.6.2.8
+++ register.py 19 Oct 2005 16:39:49 -0000
@@ -77,7 +77,9 @@
reply = Element((None, "iq"))
reply.attributes["from"] = config.jid
reply.attributes["to"] = incoming.getAttribute("from")
- reply.attributes["id"] = incoming.getAttribute("id")
+ ID = incoming.getAttribute("id")
+ if(ID):
+ reply.attributes["id"] = ID
reply.attributes["type"] = "result"
query = reply.addElement("query")
query.attributes["xmlns"] = "jabber:iq:register"
From [EMAIL PROTECTED] Wed Oct 19 23:26:35 2005
From: [EMAIL PROTECTED] (James Bunton)
Date: Wed Oct 19 23:26:45 2005
Subject: [py-transports] PyMSNt: Exception when ID attribute is missing
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Thanks.
This will go in for the next release.
Although the clients sending these are buggy, and they should be fixed.
Any idea which clients are the culprits?
---
James
On 20/10/2005, at 2:43 AM, Lars T. Mikkelsen wrote:
> Some messages will generate a exception like the one below, if they are
> missing the ID attribute.
>
> Traceback (most recent call last):
> [snip]
> File "[...]/pymsnt-0.10/src/disco.py", line 135, in onIq
> handler(el)
> File "[...]/pymsnt-0.10/src/misciq.py", line 273, in incomingIq
> self.pytrans.send(iq)
> File
> "/usr/lib/python2.4/site-packages/twisted/words/protocols/jabber/
> component.py", line 84, in send
> self.parent.send(obj)
> File
> "/usr/lib/python2.4/site-packages/twisted/words/protocols/jabber/
> component.py", line 151, in send
> self.xmlstream.send(obj)
> File "/usr/lib/python2.4/site-packages/twisted/xish/xmlstream.py",
> line 179, in send
> obj = obj.toXml()
> File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line
> 400, in toXml
> s.serialize(self, closeElement)
> File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line
> 86, in serialize
> write((" %s='%s'" % ( k, escapeToXml(v, 1))).encode("utf-8"))
> File "/usr/lib/python2.4/site-packages/twisted/xish/domish.py", line
> 198, in escapeToXml
> text = text.replace("&", "&")
> exceptions.AttributeError: 'NoneType' object has no attribute 'replace'
>
> A patch to check for missing ID attributes is attached.
>
> Best regards,
> Lars
> <check-id-
> attributes.patch>_______________________________________________
> py-transports mailing list
> [email protected]
> http://www.modevia.com/cgi-bin/mailman/listinfo/py-transports