mirror of
https://github.com/openvswitch/ovs
synced 2025-10-21 14:49:41 +00:00
python: Do not send non-zero flag for a SSL socket.
pyOpenSSL was recently switched for the Python standard library ssl
module in the cited commit. Python SSLsocket.send() does not allow
non-zero optional flag and it will explicitly raise an exception for
that. pyOpenSSL did nothing with this flag but kept it to be
compatible with socket API:
https://github.com/pyca/pyopenssl/blob/main/src/OpenSSL/SSL.py#L1844
Fixes: 68543dd523
("python: Replace pyOpenSSL with ssl.")
Reported-at: https://bugzilla.redhat.com/2115035
Acked-By: Timothy Redaelli <tredaelli@redhat.com>
Signed-off-by: Miro Tomaska <mtomaska@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
committed by
Ilya Maximets
parent
d1864effeb
commit
1731ed43c6
@@ -23,6 +23,11 @@ import ovs.fatal_signal
|
|||||||
import ovs.poller
|
import ovs.poller
|
||||||
import ovs.vlog
|
import ovs.vlog
|
||||||
|
|
||||||
|
try:
|
||||||
|
import ssl
|
||||||
|
except ImportError:
|
||||||
|
ssl = None
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
import ovs.winutils as winutils
|
import ovs.winutils as winutils
|
||||||
import win32file
|
import win32file
|
||||||
@@ -178,7 +183,12 @@ def check_connection_completion(sock):
|
|||||||
if revents & ovs.poller.POLLERR or revents & ovs.poller.POLLHUP:
|
if revents & ovs.poller.POLLERR or revents & ovs.poller.POLLHUP:
|
||||||
try:
|
try:
|
||||||
# The following should raise an exception.
|
# The following should raise an exception.
|
||||||
sock.send("\0".encode(), socket.MSG_DONTWAIT)
|
if ssl and isinstance(sock, ssl.SSLSocket):
|
||||||
|
# SSL wrapped socket does not allow
|
||||||
|
# non-zero optional flag.
|
||||||
|
sock.send("\0".encode())
|
||||||
|
else:
|
||||||
|
sock.send("\0".encode(), socket.MSG_DONTWAIT)
|
||||||
|
|
||||||
# (Here's where we end up if it didn't.)
|
# (Here's where we end up if it didn't.)
|
||||||
# XXX rate-limit
|
# XXX rate-limit
|
||||||
|
Reference in New Issue
Block a user