mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
use settings.timeout_fallback bool for socket.setdefaulttimeout() fallback
This commit is contained in:
@@ -57,3 +57,4 @@ settings = Settings()
|
||||
settings.base_headers = {'User-Agent': 'python-requests.org'}
|
||||
settings.accept_gzip = True
|
||||
settings.proxies = None
|
||||
settings.timeout_fallback = True # Use socket.setdefaulttimeout() as fallback?
|
||||
|
||||
+11
-5
@@ -38,7 +38,7 @@ class Request(object):
|
||||
params=dict(), auth=None, cookiejar=None, timeout=None, redirect=False,
|
||||
allow_redirects=False, proxies=None):
|
||||
|
||||
#socket.setdefaulttimeout(timeout)
|
||||
#: Float describ the timeout of the request. (Use socket.setdefaulttimeout() as fallback)
|
||||
self.timeout = timeout
|
||||
|
||||
#: Request URL.
|
||||
@@ -313,11 +313,17 @@ class Request(object):
|
||||
# timeout argument is new since Python v2.6
|
||||
if not "timeout" in str(err):
|
||||
raise
|
||||
# set global socket timeout
|
||||
old_timeout = socket.getdefaulttimeout()
|
||||
socket.setdefaulttimeout(self.timeout)
|
||||
|
||||
if settings.timeout_fallback:
|
||||
# fall-back and use global socket timeout (This is not thread-safe!)
|
||||
old_timeout = socket.getdefaulttimeout()
|
||||
socket.setdefaulttimeout(self.timeout)
|
||||
|
||||
resp = opener(req)
|
||||
socket.setdefaulttimeout(old_timeout)
|
||||
|
||||
if settings.timeout_fallback:
|
||||
# restore gobal timeout
|
||||
socket.setdefaulttimeout(old_timeout)
|
||||
|
||||
if self.cookiejar is not None:
|
||||
self.cookiejar.extract_cookies(resp, req)
|
||||
|
||||
Reference in New Issue
Block a user