From 5fe179987d14ff38cce345dbbe57ef1ffe7853cc Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Thu, 11 Jul 2019 08:00:20 -0500 Subject: [PATCH] Shutdown SSL connection before closing socket Without shutting down the SSL connection, log messages like: stream_ssl|WARN|SSL_read: unexpected SSL connection close jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) would occur whenever the socket is closed. This just adds an SSLStream.close() that calls shutdown() and ignores SSL errors, the same way that lib/stream-ssl.c does in ssl_close(). Signed-off-by: Terry Wilson Signed-off-by: Ben Pfaff --- python/ovs/stream.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/python/ovs/stream.py b/python/ovs/stream.py index c15be4b3e5..a98057e42a 100644 --- a/python/ovs/stream.py +++ b/python/ovs/stream.py @@ -825,6 +825,14 @@ def send(self, buf): except SSL.SysCallError as e: return -ovs.socket_util.get_exception_errno(e) + def close(self): + if self.socket: + try: + self.socket.shutdown() + except SSL.Error: + pass + return super(SSLStream, self).close() + if SSL: # Register SSL only if the OpenSSL module is available