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.
# 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)