From cdfb76de57e5c4d23a8f141e86adc8a0cba3ac53 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 14 Jan 2025 08:59:17 -0500 Subject: [PATCH] Try alternate invocation for handshake Newer versions of websocket change internal call, and we must follow. This is a consequence of the library providing no means to customize the TLS handling, so we have to dig in a little to get that customization. --- confluent_server/confluent/plugins/console/openbmc.py | 5 ++++- confluent_server/confluent/plugins/console/tsmsol.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/confluent_server/confluent/plugins/console/openbmc.py b/confluent_server/confluent/plugins/console/openbmc.py index a67d9b23..e4b00bd3 100644 --- a/confluent_server/confluent/plugins/console/openbmc.py +++ b/confluent_server/confluent/plugins/console/openbmc.py @@ -83,7 +83,10 @@ class WrappedWebSocket(wso): if not self._certverify(bincert): raise pygexc.UnrecognizedCertificate('Unknown certificate', bincert) try: - self.handshake_response = websocket._handshake.handshake(self.sock, *addrs, **options) + try: + self.handshake_response = websocket._handshake.handshake(self.sock, *addrs, **options) + except TypeError: + self.handshake_response = websocket._handshake.handshake(self.sock, url, *addrs, **options) if self.handshake_response.status in websocket._handshake.SUPPORTED_REDIRECT_STATUSES: options['redirect_limit'] = options.pop('redirect_limit', 3) - 1 if options['redirect_limit'] < 0: diff --git a/confluent_server/confluent/plugins/console/tsmsol.py b/confluent_server/confluent/plugins/console/tsmsol.py index 5e662ebd..55ef4a90 100644 --- a/confluent_server/confluent/plugins/console/tsmsol.py +++ b/confluent_server/confluent/plugins/console/tsmsol.py @@ -82,7 +82,10 @@ class WrappedWebSocket(wso): if not self._certverify(bincert): raise pygexc.UnrecognizedCertificate('Unknown certificate', bincert) try: - self.handshake_response = websocket._handshake.handshake(self.sock, *addrs, **options) + try: + self.handshake_response = websocket._handshake.handshake(self.sock, *addrs, **options) + except TypeError: + self.handshake_response = websocket._handshake.handshake(self.sock, url, *addrs, **options) if self.handshake_response.status in websocket._handshake.SUPPORTED_REDIRECT_STATUSES: options['redirect_limit'] = options.pop('redirect_limit', 3) - 1 if options['redirect_limit'] < 0: