Clean up KMIPProxy initialization and destruction

Fixes #381.
This commit is contained in:
Tim Burke 2018-06-22 12:26:48 -07:00
parent 4e138207af
commit d291c50bd6
1 changed files with 5 additions and 2 deletions

View File

@ -79,6 +79,10 @@ class KMIPProxy:
self.logger = logging.getLogger(__name__)
self.credential_factory = CredentialFactory()
self.config = config
# Even partially-initialized objects need to be garbage collected, so
# make sure we have a socket attr before we go raising ValueErrors.
# Otherwise, we can hit AttributeErrors when __del__ is called.
self.socket = None
if config_file:
if not isinstance(config_file, six.string_types):
@ -103,7 +107,6 @@ class KMIPProxy:
self.authentication_suites = [
AuthenticationSuite.BASIC,
AuthenticationSuite.TLS12]
self.socket = None
def get_supported_conformance_clauses(self):
"""
@ -256,7 +259,7 @@ class KMIPProxy:
try:
self.socket.shutdown(socket.SHUT_RDWR)
self.socket.close()
except OSError:
except (OSError, socket.error):
# Can be thrown if the socket is not actually connected to
# anything. In this case, ignore the error.
pass