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:
parent
3ce83dcf6a
commit
a70de88577
3 changed files with 15 additions and 9 deletions
3
changelogs/fragments/7542-irc-logentries-ssl.yml
Normal file
3
changelogs/fragments/7542-irc-logentries-ssl.yml
Normal 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)."
|
|
@ -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))
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue