summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0115/caps.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2013-02-11 20:01:53 -0800
committerLance Stout <lancestout@gmail.com>2013-02-11 20:01:53 -0800
commit99ecb166d377ea316c95830a74efc73f5c2b9182 (patch)
tree6175ac5fd8a7b9acbdf719a8915be2da67691edd /sleekxmpp/plugins/xep_0115/caps.py
parentcdeae7e72fb1d624fc45ffafcef08e30ac606720 (diff)
downloadslixmpp-99ecb166d377ea316c95830a74efc73f5c2b9182.tar.gz
slixmpp-99ecb166d377ea316c95830a74efc73f5c2b9182.tar.bz2
slixmpp-99ecb166d377ea316c95830a74efc73f5c2b9182.tar.xz
slixmpp-99ecb166d377ea316c95830a74efc73f5c2b9182.zip
More caps cleanup
Diffstat (limited to 'sleekxmpp/plugins/xep_0115/caps.py')
-rw-r--r--sleekxmpp/plugins/xep_0115/caps.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/sleekxmpp/plugins/xep_0115/caps.py b/sleekxmpp/plugins/xep_0115/caps.py
index fac1cc7c..41b5c52e 100644
--- a/sleekxmpp/plugins/xep_0115/caps.py
+++ b/sleekxmpp/plugins/xep_0115/caps.py
@@ -207,29 +207,32 @@ class XEP_0115(BasePlugin):
form_types = []
deduped_form_types = set()
for stanza in caps['substanzas']:
- if isinstance(stanza, self.xmpp['xep_0004'].stanza.Form):
- if 'FORM_TYPE' in stanza['fields']:
- f_type = tuple(stanza['fields']['FORM_TYPE']['value'])
- form_types.append(f_type)
- deduped_form_types.add(f_type)
- if len(form_types) != len(deduped_form_types):
- log.debug("Duplicated FORM_TYPE values, " + \
- "invalid for caps")
+ if not isinstance(stanza, self.xmpp['xep_0004'].stanza.Form):
+ log.debug("Non form extension found, ignoring for caps")
+ caps.xml.remove(stanza.xml)
+ continue
+ if 'FORM_TYPE' in stanza['fields']:
+ f_type = tuple(stanza['fields']['FORM_TYPE']['value'])
+ form_types.append(f_type)
+ deduped_form_types.add(f_type)
+ if len(form_types) != len(deduped_form_types):
+ log.debug("Duplicated FORM_TYPE values, " + \
+ "invalid for caps")
+ return False
+
+ if len(f_type) > 1:
+ deduped_type = set(f_type)
+ if len(f_type) != len(deduped_type):
+ log.debug("Extra FORM_TYPE data, invalid for caps")
return False
- if len(f_type) > 1:
- deduped_type = set(f_type)
- if len(f_type) != len(deduped_type):
- log.debug("Extra FORM_TYPE data, invalid for caps")
- return False
-
- if stanza['fields']['FORM_TYPE']['type'] != 'hidden':
- log.debug("Field FORM_TYPE type not 'hidden', " + \
- "ignoring form for caps")
- caps.xml.remove(stanza.xml)
- else:
- log.debug("No FORM_TYPE found, ignoring form for caps")
+ if stanza['fields']['FORM_TYPE']['type'] != 'hidden':
+ log.debug("Field FORM_TYPE type not 'hidden', " + \
+ "ignoring form for caps")
caps.xml.remove(stanza.xml)
+ else:
+ log.debug("No FORM_TYPE found, ignoring form for caps")
+ caps.xml.remove(stanza.xml)
verstring = self.generate_verstring(caps, hash)
if verstring != check_verstring: