Use socket.setdefaulttimeout(timeout) only if timeout argument doesn't exist (Python <2.6) - https://github.com/kennethreitz/requests/issues/112

This commit is contained in:
JensDiemer
2011-08-15 16:51:33 +02:00
parent 49e5df1ff9
commit 647cdd3847
2 changed files with 15 additions and 3 deletions
+2 -1
View File
@@ -31,4 +31,5 @@ Patches and Suggestions
- Tamás Gulácsi
- Rubén Abad
- Peter Manser
- Jeremy Selie
- Jeremy Selie
- Jens Diemer
+13 -2
View File
@@ -38,7 +38,8 @@ class Request(object):
params=dict(), auth=None, cookiejar=None, timeout=None, redirect=False,
allow_redirects=False, proxies=None):
socket.setdefaulttimeout(timeout)
#socket.setdefaulttimeout(timeout)
self.timeout = timeout
#: Request URL.
self.url = url
@@ -306,7 +307,17 @@ class Request(object):
try:
opener = self._get_opener()
resp = opener(req)
try:
resp = opener(req, timeout=self.timeout)
except TypeError, err:
# 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)
resp = opener(req)
socket.setdefaulttimeout(old_timeout)
if self.cookiejar is not None:
self.cookiejar.extract_cookies(resp, req)