mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-24 03:00:15 +00:00
SSL and signal fixes.
Made setting the SIG* handlers conditional on if the signal defined for the OS. Added the attribute ssl_version to XMLStream to set the version of SSL used during connection. It defaults to ssl.PROTOCOL_TLSv1, but OpenFire tends to require ssl.PROTOCOL_SSLv23.
This commit is contained in:
parent
b888610525
commit
9c08e56ed0
1 changed files with 10 additions and 4 deletions
|
@ -87,6 +87,8 @@ class XMLStream(object):
|
||||||
send_queue -- A queue of stanzas to be sent on the stream.
|
send_queue -- A queue of stanzas to be sent on the stream.
|
||||||
socket -- The connection to the server.
|
socket -- The connection to the server.
|
||||||
ssl_support -- Indicates if a SSL library is available for use.
|
ssl_support -- Indicates if a SSL library is available for use.
|
||||||
|
ssl_version -- The version of the SSL protocol to use.
|
||||||
|
Defaults to ssl.PROTOCOL_TLSv1.
|
||||||
state -- A state machine for managing the stream's
|
state -- A state machine for managing the stream's
|
||||||
connection state.
|
connection state.
|
||||||
stream_footer -- The start tag and any attributes for the stream's
|
stream_footer -- The start tag and any attributes for the stream's
|
||||||
|
@ -155,6 +157,7 @@ class XMLStream(object):
|
||||||
self.sendXML = self.send_xml
|
self.sendXML = self.send_xml
|
||||||
|
|
||||||
self.ssl_support = SSL_SUPPORT
|
self.ssl_support = SSL_SUPPORT
|
||||||
|
self.ssl_version = ssl.PROTOCOL_TLSv1
|
||||||
|
|
||||||
self.state = StateMachine(('disconnected', 'connected'))
|
self.state = StateMachine(('disconnected', 'connected'))
|
||||||
self.state._set_state('disconnected')
|
self.state._set_state('disconnected')
|
||||||
|
@ -196,8 +199,11 @@ class XMLStream(object):
|
||||||
self.auto_reconnect = True
|
self.auto_reconnect = True
|
||||||
self.is_client = False
|
self.is_client = False
|
||||||
|
|
||||||
signal.signal(signal.SIGHUP, self._handle_kill)
|
if hasattr(signal, 'SIGHUP'):
|
||||||
signal.signal(signal.SIGTERM, self._handle_kill) # used in Windows
|
signal.signal(signal.SIGHUP, self._handle_kill)
|
||||||
|
if hasattr(signal, 'SIGTERM'):
|
||||||
|
# Used in Windows
|
||||||
|
signal.signal(signal.SIGTERM, self._handle_kill)
|
||||||
|
|
||||||
def _handle_kill(self, signum, frame):
|
def _handle_kill(self, signum, frame):
|
||||||
"""
|
"""
|
||||||
|
@ -370,7 +376,7 @@ class XMLStream(object):
|
||||||
if self.ssl_support:
|
if self.ssl_support:
|
||||||
logging.info("Negotiating TLS")
|
logging.info("Negotiating TLS")
|
||||||
ssl_socket = ssl.wrap_socket(self.socket,
|
ssl_socket = ssl.wrap_socket(self.socket,
|
||||||
ssl_version=ssl.PROTOCOL_TLSv1,
|
ssl_version=self.ssl_version,
|
||||||
do_handshake_on_connect=False)
|
do_handshake_on_connect=False)
|
||||||
if hasattr(self.socket, 'socket'):
|
if hasattr(self.socket, 'socket'):
|
||||||
# We are using a testing socket, so preserve the top
|
# We are using a testing socket, so preserve the top
|
||||||
|
@ -788,7 +794,7 @@ class XMLStream(object):
|
||||||
|
|
||||||
def _threaded_event_wrapper(self, func, args):
|
def _threaded_event_wrapper(self, func, args):
|
||||||
"""
|
"""
|
||||||
Capture exceptions for event handlers that run
|
Capture exceptions for event handlers that run
|
||||||
in individual threads.
|
in individual threads.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
Loading…
Reference in a new issue