diff options
author | Lance Stout <lancestout@gmail.com> | 2012-04-08 21:15:53 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-04-08 21:15:53 -0400 |
commit | 15ef27314189baeee64fbe41ab87f1eebef6e85c (patch) | |
tree | 7301f7518332bb0a2c5295b9f42a3e9aa3dd2fcf | |
parent | eed6da538a33711f19adc70b00071af43005062a (diff) | |
download | slixmpp-15ef27314189baeee64fbe41ab87f1eebef6e85c.tar.gz slixmpp-15ef27314189baeee64fbe41ab87f1eebef6e85c.tar.bz2 slixmpp-15ef27314189baeee64fbe41ab87f1eebef6e85c.tar.xz slixmpp-15ef27314189baeee64fbe41ab87f1eebef6e85c.zip |
Add a prefix to stanza ID values to ensure that they are unique per client.
-rw-r--r-- | sleekxmpp/test/sleektest.py | 3 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/sleekxmpp/test/sleektest.py b/sleekxmpp/test/sleektest.py index 364e5939..bc83472e 100644 --- a/sleekxmpp/test/sleektest.py +++ b/sleekxmpp/test/sleektest.py @@ -330,6 +330,9 @@ class SleekTest(unittest.TestCase): else: raise ValueError("Unknown XMPP connection mode.") + # Remove unique ID prefix to make it easier to test + self.xmpp._id_prefix = '' + # We will use this to wait for the session_start event # for live connections. skip_queue = queue.Queue() diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index 145383c1..808464f0 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -25,6 +25,7 @@ import threading import time import random import weakref +import uuid try: import queue except ImportError: @@ -285,6 +286,9 @@ class XMLStream(object): self._id = 0 self._id_lock = threading.Lock() + #: We use an ID prefix to ensure that all ID values are unique. + self._id_prefix = '%s-' % uuid.uuid4() + #: The :attr:`auto_reconnnect` setting controls whether or not #: the stream will be restarted in the event of an error. self.auto_reconnect = True @@ -367,7 +371,7 @@ class XMLStream(object): def get_id(self): """Return the current unique stream ID in hexadecimal form.""" - return "%X" % self._id + return "%s%X" % (self._id_prefix, self._id) def connect(self, host='', port=0, use_ssl=False, use_tls=True, reattempt=True): |