[tor-commits] [ooni-probe/master] Catch 302 redirect loops and log.err not log.warn

isis at torproject.org isis at torproject.org
Sun Feb 24 19:10:38 UTC 2013


commit 2777766ad192c68dccec7120b49fa314ae62aa56
Author: aagbsn <aagbsn at extc.org>
Date:   Fri Jan 25 10:52:50 2013 +0000

    Catch 302 redirect loops and log.err not log.warn
---
 nettests/manipulation/captiveportal.py |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/nettests/manipulation/captiveportal.py b/nettests/manipulation/captiveportal.py
index 082960e..a0f8c6b 100644
--- a/nettests/manipulation/captiveportal.py
+++ b/nettests/manipulation/captiveportal.py
@@ -80,9 +80,15 @@ class CaptivePortal(nettest.NetTestCase):
         """
         url = urlparse(url).geturl()
         request = urllib2.Request(url, None, headers)
-        response = urllib2.urlopen(request)
-        response_headers = dict(response.headers)
-        return response, response_headers
+        #XXX: HTTP Error 302: The HTTP server returned a redirect error that
+        #would lead to an infinite loop.  The last 30x error message was: Found
+        try:
+            response = urllib2.urlopen(request)
+            response_headers = dict(response.headers)
+            return response, response_headers
+        except urllib2.HTTPError, e:
+            log.err("HTTPError: %s" % e)
+            return None, None
 
     def http_content_match_fuzzy_opt(self, experimental_url, control_result,
                                      headers=None, fuzzy=False):
@@ -102,10 +108,11 @@ class CaptivePortal(nettest.NetTestCase):
             headers = {'User-Agent': default_ua}
 
         response, response_headers = self.http_fetch(experimental_url, headers)
-        response_content = response.read()
-        response_code = response.code
+
+        response_content = response.read() if response else None
+        response_code = response.code if response else None
         if response_content is None:
-            log.warn("HTTP connection appears to have failed.")
+            log.err("HTTP connection appears to have failed.")
             return False, False, False
 
         if fuzzy:
@@ -547,7 +554,7 @@ class CaptivePortal(nettest.NetTestCase):
                 report['result'] = compare_content(snm, True, *args)
 
             else:
-                log.warn("Ooni is trying to run an undefined CP vendor test.")
+                log.err("Ooni is trying to run an undefined CP vendor test.")
             result.append(report)
         return result
 





More information about the tor-commits mailing list