summaryrefslogtreecommitdiff
path: root/sleekxmpp
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp')
-rw-r--r--sleekxmpp/plugins/old_0004.py2
-rw-r--r--sleekxmpp/stanza/iq.py26
-rw-r--r--sleekxmpp/xmlstream/jid.py2
3 files changed, 28 insertions, 2 deletions
diff --git a/sleekxmpp/plugins/old_0004.py b/sleekxmpp/plugins/old_0004.py
index ade3d682..7f086866 100644
--- a/sleekxmpp/plugins/old_0004.py
+++ b/sleekxmpp/plugins/old_0004.py
@@ -6,7 +6,7 @@
See the file LICENSE for copying permission.
"""
from . import base
-import log
+import logging
from xml.etree import cElementTree as ET
import copy
import logging
diff --git a/sleekxmpp/stanza/iq.py b/sleekxmpp/stanza/iq.py
index 906e6648..6388346c 100644
--- a/sleekxmpp/stanza/iq.py
+++ b/sleekxmpp/stanza/iq.py
@@ -199,3 +199,29 @@ class Iq(RootStanza):
return waitfor.wait(timeout)
else:
return StanzaBase.send(self)
+
+ def _set_stanza_values(self, values):
+ """
+ Set multiple stanza interface values using a dictionary.
+
+ Stanza plugin values may be set usind nested dictionaries.
+
+ If the interface 'query' is given, then it will be set
+ last to avoid duplication of the <query /> element.
+
+ Overrides ElementBase._set_stanza_values.
+
+ Arguments:
+ values -- A dictionary mapping stanza interface with values.
+ Plugin interfaces may accept a nested dictionary that
+ will be used recursively.
+ """
+ query = values.get('query', '')
+ if query:
+ del values['query']
+ StanzaBase._set_stanza_values(self, values)
+ self['query'] = query
+ else:
+ StanzaBase._set_stanza_values(self, values)
+ return self
+
diff --git a/sleekxmpp/xmlstream/jid.py b/sleekxmpp/xmlstream/jid.py
index e5c49dc0..5019a25e 100644
--- a/sleekxmpp/xmlstream/jid.py
+++ b/sleekxmpp/xmlstream/jid.py
@@ -71,7 +71,7 @@ class JID(object):
if self._domain is None:
self._domain = self._jid.split('@', 1)[-1].split('/', 1)[0]
return self._domain or ""
- elif name == 'full':
+ elif name in ('full', 'jid'):
return self._jid or ""
elif name == 'bare':
if self._bare is None: