summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-08-25 14:54:09 -0400
committerLance Stout <lancestout@gmail.com>2010-08-25 14:54:09 -0400
commita3580dcef9129975170d8757f835e02caffca82c (patch)
tree4fa2d96a0f54767011a2204ac9041640782b261d /sleekxmpp/xmlstream
parent1eaa9cb28c426ad35ab8e398ffa77cd9ed7bae30 (diff)
downloadslixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.gz
slixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.bz2
slixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.xz
slixmpp-a3580dcef9129975170d8757f835e02caffca82c.zip
Fixed ElementBase.match to respect namespaces.
Diffstat (limited to 'sleekxmpp/xmlstream')
-rw-r--r--sleekxmpp/xmlstream/stanzabase.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py
index af74919e..d38eb295 100644
--- a/sleekxmpp/xmlstream/stanzabase.py
+++ b/sleekxmpp/xmlstream/stanzabase.py
@@ -478,7 +478,8 @@ class ElementBase(object):
tag = components[0]
attributes = components[1:]
- if tag not in (self.name, self.plugins, self.plugin_attrib):
+ if tag not in (self.name, "{%s}%s" % (self.namespace, self.name),
+ self.plugins, self.plugin_attrib):
# The requested tag is not in this stanza, so no match.
return False
@@ -499,7 +500,8 @@ class ElementBase(object):
# Attempt to continue matching the XPath using the stanza's plugins.
if not matched_substanzas and len(xpath) > 1:
- next_tag = xpath[1].split('@')[0]
+ # Convert {namespace}tag@attribs to just tag
+ next_tag = xpath[1].split('@')[0].split('}')[-1]
if next_tag in self.plugins:
return self.plugins[next_tag].match(xpath[1:])
else: