1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

[PR #7542/21cd65fc backport][stable-7] ssl.wrap_socket() was removed in Python 3.12 (#7556)

ssl.wrap_socket() was removed in Python 3.12 (#7542)

* ssl.wrap_socket() was removed in Python 3.12.

* Make code for irc module backwards-compatible.

(cherry picked from commit 21cd65fccf)

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
patchback[bot] 2023-11-19 14:41:33 +01:00 committed by GitHub
parent 3ce83dcf6a
commit a70de88577
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 9 deletions

View file

@ -0,0 +1,3 @@
bugfixes:
- "log_entries callback plugin - replace ``ssl.wrap_socket`` that was removed from Python 3.12 with code for creating a proper SSL context (https://github.com/ansible-collections/community.general/pull/7542)."
- "irc - replace ``ssl.wrap_socket`` that was removed from Python 3.12 with code for creating a proper SSL context (https://github.com/ansible-collections/community.general/pull/7542)."

View file

@ -196,15 +196,11 @@ else:
class TLSSocketAppender(PlainTextSocketAppender): class TLSSocketAppender(PlainTextSocketAppender):
def open_connection(self): def open_connection(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock = ssl.wrap_socket( context = ssl.create_default_context(
purpose=ssl.Purpose.SERVER_AUTH,
cafile=certifi.where(), )
sock = context.wrap_socket(
sock=sock, sock=sock,
keyfile=None,
certfile=None,
server_side=False,
cert_reqs=ssl.CERT_REQUIRED,
ssl_version=getattr(
ssl, 'PROTOCOL_TLSv1_2', ssl.PROTOCOL_TLSv1),
ca_certs=certifi.where(),
do_handshake_on_connect=True, do_handshake_on_connect=True,
suppress_ragged_eofs=True, ) suppress_ragged_eofs=True, )
sock.connect((self.LE_API, self.LE_TLS_PORT)) sock.connect((self.LE_API, self.LE_TLS_PORT))

View file

@ -195,7 +195,14 @@ def send_msg(msg, server='localhost', port='6667', channel=None, nick_to=None, k
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if use_ssl: if use_ssl:
irc = ssl.wrap_socket(irc) if getattr(ssl, 'PROTOCOL_TLS', None) is not None:
# Supported since Python 2.7.13
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
else:
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_NONE
# TODO: create a secure context with `context = ssl.create_default_context()` instead!
irc = context.wrap_socket(irc)
irc.connect((server, int(port))) irc.connect((server, int(port)))
if passwd: if passwd: