diff --git a/kmip/services/server/server.py b/kmip/services/server/server.py index eaa33fd..534ab61 100644 --- a/kmip/services/server/server.py +++ b/kmip/services/server/server.py @@ -295,7 +295,7 @@ class KmipServer(object): cert_reqs=ssl.CERT_REQUIRED, ssl_version=self.auth_suite.protocol, ca_certs=self.config.settings.get('ca_path'), - do_handshake_on_connect=True, + do_handshake_on_connect=False, suppress_ragged_eofs=True, ciphers=self.auth_suite.ciphers ) diff --git a/kmip/services/server/session.py b/kmip/services/server/session.py index a2d9df0..96cd839 100644 --- a/kmip/services/server/session.py +++ b/kmip/services/server/session.py @@ -97,14 +97,20 @@ class KmipSession(threading.Thread): """ self._logger.info("Starting session: {0}".format(self.name)) - while True: - try: - self._handle_message_loop() - except exceptions.ConnectionClosed as e: - break - except Exception as e: - self._logger.info("Failure handling message loop") - self._logger.exception(e) + try: + self._connection.do_handshake() + except Exception as e: + self._logger.info("Failure running TLS handshake") + self._logger.exception(e) + else: + while True: + try: + self._handle_message_loop() + except exceptions.ConnectionClosed as e: + break + except Exception as e: + self._logger.info("Failure handling message loop") + self._logger.exception(e) self._connection.shutdown(socket.SHUT_RDWR) self._connection.close()