diff options
author | Lance Stout <lancestout@gmail.com> | 2011-06-01 15:17:13 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2011-06-01 15:17:13 -0700 |
commit | 8f9100c7620c1c00e6e6d817be1ad8ffc67cd1c5 (patch) | |
tree | a490670f37860c42c52acfbebf12c680284996f4 /sleekxmpp | |
parent | 83a73ac9b751f6403a43cb341460a46171e0908b (diff) | |
parent | 14693233504383d4df0ed092c870d5d7baea6538 (diff) | |
download | slixmpp-8f9100c7620c1c00e6e6d817be1ad8ffc67cd1c5.tar.gz slixmpp-8f9100c7620c1c00e6e6d817be1ad8ffc67cd1c5.tar.bz2 slixmpp-8f9100c7620c1c00e6e6d817be1ad8ffc67cd1c5.tar.xz slixmpp-8f9100c7620c1c00e6e6d817be1ad8ffc67cd1c5.zip |
Merge branch 'develop' into stream_features
Diffstat (limited to 'sleekxmpp')
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index 2d72de5f..fd313536 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -192,6 +192,7 @@ class XMLStream(object): self.event_queue = queue.Queue() self.send_queue = queue.Queue() + self.__failed_send_stanza = None self.scheduler = Scheduler(self.event_queue, self.stop) self.namespace_map = {StanzaBase.xml_ns: 'xml'} @@ -1021,16 +1022,21 @@ class XMLStream(object): try: while not self.stop.isSet(): self.session_started_event.wait() - try: - data = self.send_queue.get(True, 1) - except queue.Empty: - continue + if self.__failed_send_stanza is not None: + data = self.__failed_send_stanza + self.__failed_send_stanza = None + else: + try: + data = self.send_queue.get(True, 1) + except queue.Empty: + continue log.debug("SEND: %s" % data) try: self.socket.send(data.encode('utf-8')) except Socket.error as serr: self.event('socket_error', serr) log.warning("Failed to send %s" % data) + self.__failed_send_stanza = data self.disconnect(self.auto_reconnect) except KeyboardInterrupt: log.debug("Keyboard Escape Detected in _send_thread") |