Merge branch 'develop' into roster

This commit is contained in:
Lance Stout 2011-06-01 15:17:04 -07:00
commit 788a5b73f9

View file

@ -192,6 +192,7 @@ class XMLStream(object):
self.event_queue = queue.Queue() self.event_queue = queue.Queue()
self.send_queue = queue.Queue() self.send_queue = queue.Queue()
self.__failed_send_stanza = None
self.scheduler = Scheduler(self.event_queue, self.stop) self.scheduler = Scheduler(self.event_queue, self.stop)
self.namespace_map = {StanzaBase.xml_ns: 'xml'} self.namespace_map = {StanzaBase.xml_ns: 'xml'}
@ -1021,16 +1022,21 @@ class XMLStream(object):
try: try:
while not self.stop.isSet(): while not self.stop.isSet():
self.session_started_event.wait() self.session_started_event.wait()
try: if self.__failed_send_stanza is not None:
data = self.send_queue.get(True, 1) data = self.__failed_send_stanza
except queue.Empty: self.__failed_send_stanza = None
continue else:
try:
data = self.send_queue.get(True, 1)
except queue.Empty:
continue
log.debug("SEND: %s" % data) log.debug("SEND: %s" % data)
try: try:
self.socket.send(data.encode('utf-8')) self.socket.send(data.encode('utf-8'))
except Socket.error as serr: except Socket.error as serr:
self.event('socket_error', serr) self.event('socket_error', serr)
log.warning("Failed to send %s" % data) log.warning("Failed to send %s" % data)
self.__failed_send_stanza = data
self.disconnect(self.auto_reconnect) self.disconnect(self.auto_reconnect)
except KeyboardInterrupt: except KeyboardInterrupt:
log.debug("Keyboard Escape Detected in _send_thread") log.debug("Keyboard Escape Detected in _send_thread")