mirror of
				https://github.com/ansible-collections/community.general.git
				synced 2025-10-26 13:56:09 -07:00 
			
		
		
		
	[PR #7542/21cd65fc backport][stable-8] ssl.wrap_socket() was removed in Python 3.12 (#7557)
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
					
						
							
								3cf90b3e36
							
						
					
				
			
			
				commit
				
					
						7f8d77b9f3
					
				
			
		
					 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue