summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.org>2014-09-24 22:57:38 -0400
committerKenneth Reitz <me@kennethreitz.org>2014-09-24 22:57:38 -0400
commitde76fbeefbeae0974725e9470105347804d07349 (patch)
tree4cba5a29704f94de313ec34df4e0d5d80771813c
parente0d88c2814f24e7da11b03351934bd1df5e27476 (diff)
parentac44b482971d93cf5e7d4985a0b3fff52b3d2059 (diff)
downloadpython-requests-de76fbeefbeae0974725e9470105347804d07349.tar.gz
Merge pull request #2244 from sigmavirus24/bug/2231
Avoid getting stuck in a loop
-rw-r--r--requests/sessions.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/requests/sessions.py b/requests/sessions.py
index 023edfbd..f9873064 100644
--- a/requests/sessions.py
+++ b/requests/sessions.py
@@ -535,8 +535,13 @@ class Session(SessionRedirectMixin):
if not isinstance(request, PreparedRequest):
raise ValueError('You can only send PreparedRequests.')
+ checked_urls = set()
while request.url in self.redirect_cache:
- request.url = self.redirect_cache.get(request.url)
+ checked_urls.add(request.url)
+ new_url = self.redirect_cache.get(request.url)
+ if new_url in checked_urls:
+ break
+ request.url = new_url
# Set up variables needed for resolve_redirects and dispatching of hooks
allow_redirects = kwargs.pop('allow_redirects', True)