@@ -270,16 +270,20 @@ def service_actions(self):
270270 # - finish_request() instantiates the request handler class; this
271271 # constructor will handle the request all by itself
272272
273- def _get_timeout (self ):
274- """Hook so child classes can support other sources of timeout."""
275- return self .timeout
276-
277273 def handle_request (self ):
278274 """Handle one request, possibly blocking.
279275
280276 Respects self.timeout.
281277 """
282- timeout = self ._get_timeout ()
278+ # Support people who used socket.settimeout() to escape
279+ # handle_request before self.timeout was available.
280+ timeout = None
281+ if hasattr (self , "socket" ):
282+ timeout = self .socket .gettimeout ()
283+ if timeout is None :
284+ timeout = self .timeout
285+ elif self .timeout is not None :
286+ timeout = min (timeout , self .timeout )
283287 if timeout is not None :
284288 deadline = time () + timeout
285289
@@ -491,16 +495,6 @@ def server_close(self):
491495 """
492496 self .socket .close ()
493497
494- def _get_timeout (self ):
495- # Support people who used socket.settimeout() to escape
496- # handle_request before self.timeout was available.
497- timeout = self .socket .gettimeout ()
498- if timeout is None :
499- timeout = self .timeout
500- elif self .timeout is not None :
501- timeout = min (timeout , self .timeout )
502- return timeout
503-
504498 def fileno (self ):
505499 """Return socket file number.
506500
0 commit comments