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 <twilson@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
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