summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/xmlstream.py
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/xmlstream/xmlstream.py')
-rw-r--r--sleekxmpp/xmlstream/xmlstream.py67
1 files changed, 35 insertions, 32 deletions
diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py
index 85619db4..30b76ce7 100644
--- a/sleekxmpp/xmlstream/xmlstream.py
+++ b/sleekxmpp/xmlstream/xmlstream.py
@@ -44,6 +44,9 @@ HANDLER_THREADS = 1
SSL_SUPPORT = True
+log = logging.getLogger(__name__)
+
+
class RestartStream(Exception):
"""
Exception to restart stream processing, including
@@ -206,7 +209,7 @@ class XMLStream(object):
# Used in Windows
signal.signal(signal.SIGTERM, self._handle_kill)
except:
- logging.debug("Can not set interrupt signal handlers. " + \
+ log.debug("Can not set interrupt signal handlers. " + \
"SleekXMPP is not running from a main thread.")
def _handle_kill(self, signum, frame):
@@ -275,7 +278,7 @@ class XMLStream(object):
self.socket = self.socket_class(Socket.AF_INET, Socket.SOCK_STREAM)
self.socket.settimeout(None)
if self.use_ssl and self.ssl_support:
- logging.debug("Socket Wrapped for SSL")
+ log.debug("Socket Wrapped for SSL")
ssl_socket = ssl.wrap_socket(self.socket)
if hasattr(self.socket, 'socket'):
# We are using a testing socket, so preserve the top
@@ -285,7 +288,7 @@ class XMLStream(object):
self.socket = ssl_socket
try:
- logging.debug("Connecting to %s:%s" % self.address)
+ log.debug("Connecting to %s:%s" % self.address)
self.socket.connect(self.address)
self.set_socket(self.socket, ignore=True)
#this event is where you should set your application state
@@ -293,7 +296,7 @@ class XMLStream(object):
return True
except Socket.error as serr:
error_msg = "Could not connect to %s:%s. Socket Error #%s: %s"
- logging.error(error_msg % (self.address[0], self.address[1],
+ log.error(error_msg % (self.address[0], self.address[1],
serr.errno, serr.strerror))
time.sleep(1)
return False
@@ -338,10 +341,10 @@ class XMLStream(object):
"""
Reset the stream's state and reconnect to the server.
"""
- logging.debug("reconnecting...")
+ log.debug("reconnecting...")
self.state.transition('connected', 'disconnected', wait=2.0,
func=self._disconnect, args=(True,))
- logging.debug("connecting...")
+ log.debug("connecting...")
return self.state.transition('disconnected', 'connected',
wait=2.0, func=self._connect)
@@ -378,8 +381,8 @@ class XMLStream(object):
to be restarted.
"""
if self.ssl_support:
- logging.info("Negotiating TLS")
- logging.info("Using SSL version: %s" % str(self.ssl_version))
+ log.info("Negotiating TLS")
+ log.info("Using SSL version: %s" % str(self.ssl_version))
ssl_socket = ssl.wrap_socket(self.socket,
ssl_version=self.ssl_version,
do_handshake_on_connect=False)
@@ -393,7 +396,7 @@ class XMLStream(object):
self.set_socket(self.socket)
return True
else:
- logging.warning("Tried to enable TLS, but ssl module not found.")
+ log.warning("Tried to enable TLS, but ssl module not found.")
return False
def start_stream_handler(self, xml):
@@ -547,7 +550,7 @@ class XMLStream(object):
name -- The name of the event to trigger.
data -- Data that will be passed to each event handler.
Defaults to an empty dictionary.
- direct -- Runs the event directly if True, skipping the
+ direct -- Runs the event directly if True, skipping the
event queue. All event handlers will run in the
same thread.
"""
@@ -557,7 +560,7 @@ class XMLStream(object):
handler[0](copy.copy(data))
except Exception as e:
error_msg = 'Error processing event handler: %s'
- logging.exception(error_msg % str(handler[0]))
+ log.exception(error_msg % str(handler[0]))
if hasattr(data, 'exception'):
data.exception(e)
else:
@@ -622,7 +625,7 @@ class XMLStream(object):
mask = mask.xml
data = str(data)
if mask is not None:
- logging.warning("Use of send mask waiters is deprecated.")
+ log.warning("Use of send mask waiters is deprecated.")
wait_for = Waiter("SendWait_%s" % self.new_id(),
MatchXMLMask(mask))
self.register_handler(wait_for)
@@ -679,7 +682,7 @@ class XMLStream(object):
self.__thread[name].start()
for t in range(0, HANDLER_THREADS):
- logging.debug("Starting HANDLER THREAD")
+ log.debug("Starting HANDLER THREAD")
start_thread('stream_event_handler_%s' % t, self._event_runner)
start_thread('send_thread', self._send_thread)
@@ -717,16 +720,16 @@ class XMLStream(object):
if self.is_client:
self.send_raw(self.stream_header)
except KeyboardInterrupt:
- logging.debug("Keyboard Escape Detected in _process")
+ log.debug("Keyboard Escape Detected in _process")
self.stop.set()
except SystemExit:
- logging.debug("SystemExit in _process")
+ log.debug("SystemExit in _process")
self.stop.set()
except Socket.error:
- logging.exception('Socket Error')
+ log.exception('Socket Error')
except:
if not self.stop.isSet():
- logging.exception('Connection error.')
+ log.exception('Connection error.')
if not self.stop.isSet() and self.auto_reconnect:
self.reconnect()
else:
@@ -756,7 +759,7 @@ class XMLStream(object):
if depth == 0:
# The stream's root element has closed,
# terminating the stream.
- logging.debug("End of stream recieved")
+ log.debug("End of stream recieved")
self.stream_end_event.set()
return False
elif depth == 1:
@@ -770,7 +773,7 @@ class XMLStream(object):
# Keep the root element empty of children to
# save on memory use.
root.clear()
- logging.debug("Ending read XML loop")
+ log.debug("Ending read XML loop")
def _build_stanza(self, xml, default_ns=None):
"""
@@ -781,7 +784,7 @@ class XMLStream(object):
Arguments:
xml -- The XML object to convert into a stanza object.
- default_ns -- Optional default namespace to use instead of the
+ default_ns -- Optional default namespace to use instead of the
stream's current default namespace.
"""
if default_ns is None:
@@ -803,7 +806,7 @@ class XMLStream(object):
Arguments:
xml -- The XML stanza to analyze.
"""
- logging.debug("RECV: %s" % tostring(xml,
+ log.debug("RECV: %s" % tostring(xml,
xmlns=self.default_ns,
stream=self))
# Apply any preprocessing filters.
@@ -852,7 +855,7 @@ class XMLStream(object):
func(*args)
except Exception as e:
error_msg = 'Error processing event handler: %s'
- logging.exception(error_msg % str(func))
+ log.exception(error_msg % str(func))
if hasattr(args[0], 'exception'):
args[0].exception(e)
@@ -865,7 +868,7 @@ class XMLStream(object):
Stream event handlers will all execute in this thread. Custom event
handlers may be spawned in individual threads.
"""
- logging.debug("Loading event runner")
+ log.debug("Loading event runner")
try:
while not self.stop.isSet():
try:
@@ -883,14 +886,14 @@ class XMLStream(object):
handler.run(args[0])
except Exception as e:
error_msg = 'Error processing stream handler: %s'
- logging.exception(error_msg % handler.name)
+ log.exception(error_msg % handler.name)
args[0].exception(e)
elif etype == 'schedule':
try:
- logging.debug(args)
+ log.debug(args)
handler(*args[0])
except:
- logging.exception('Error processing scheduled task')
+ log.exception('Error processing scheduled task')
elif etype == 'event':
func, threaded, disposable = handler
try:
@@ -904,14 +907,14 @@ class XMLStream(object):
func(*args)
except Exception as e:
error_msg = 'Error processing event handler: %s'
- logging.exception(error_msg % str(func))
+ log.exception(error_msg % str(func))
if hasattr(args[0], 'exception'):
args[0].exception(e)
elif etype == 'quit':
- logging.debug("Quitting event runner thread")
+ log.debug("Quitting event runner thread")
return False
except KeyboardInterrupt:
- logging.debug("Keyboard Escape Detected in _event_runner")
+ log.debug("Keyboard Escape Detected in _event_runner")
self.disconnect()
return
except SystemExit:
@@ -929,14 +932,14 @@ class XMLStream(object):
data = self.send_queue.get(True, 1)
except queue.Empty:
continue
- logging.debug("SEND: %s" % data)
+ log.debug("SEND: %s" % data)
try:
self.socket.send(data.encode('utf-8'))
except:
- logging.warning("Failed to send %s" % data)
+ log.warning("Failed to send %s" % data)
self.disconnect(self.auto_reconnect)
except KeyboardInterrupt:
- logging.debug("Keyboard Escape Detected in _send_thread")
+ log.debug("Keyboard Escape Detected in _send_thread")
self.disconnect()
return
except SystemExit: