@@ -385,28 +385,37 @@ def _configure_socket(self, s):
385385 if hasattr (s , 'settimeout' ):
386386 s .settimeout (self .server .timeout )
387387
388- def _from_server_socket (self , server_socket ):
389- # Accept the raw connection
388+ def _prepare_socket (self , server_socket ):
389+ """Handle physical accept and TLS negotiation."""
390390 result = self ._accept_conn (server_socket )
391391 if result is None :
392- return None
392+ return None , None , None , None
393393 s , addr = result
394394
395395 self ._configure_socket (s )
396396
397- # Handle TLS wrap if applicable
398397 mf = MakeFile
399398 ssl_env = {}
399+
400400 if self .server .ssl_adapter is not None :
401401 s , ssl_env = self ._wrap_socket_for_tls (s , addr )
402402 if not s :
403- return None
403+ return None , None , None , None
404404
405405 mf = self .server .ssl_adapter .makefile
406406 # Re-apply our timeout since we may have a new socket object
407407 if hasattr (s , 'settimeout' ):
408408 s .settimeout (self .server .timeout )
409409
410+ return s , addr , mf , ssl_env
411+
412+ def _from_server_socket (self , server_socket ):
413+ """Orchestrate the creation of a connection from a server socket."""
414+ # Handle the connection acceptance and the TLS wrapping if applicable
415+ s , addr , mf , ssl_env = self ._prepare_socket (server_socket )
416+ if s is None :
417+ return None
418+
410419 # Initialize the Connection object
411420 conn = self .server .ConnectionClass (self .server , s , mf )
412421 conn .ssl_env = ssl_env
0 commit comments