[tor-commits] [bridgedb/master] Change renderAnswer() to take bridge lines, not Bridge classes.

isis at torproject.org isis at torproject.org
Sun Jan 12 06:06:36 UTC 2014


commit 9111b70702d869a816ea9b1277ccaf3bc461ff5b
Author: Isis Lovecruft <isis at torproject.org>
Date:   Sun Jan 12 04:50:14 2014 +0000

    Change renderAnswer() to take bridge lines, not Bridge classes.
    
    Otherwise, we'd also have to pass the `transport`, and `addressClass`
    parameters to renderAnswer().
---
 lib/bridgedb/HTTPServer.py |   32 +++++++++++++-------------------
 1 file changed, 13 insertions(+), 19 deletions(-)

diff --git a/lib/bridgedb/HTTPServer.py b/lib/bridgedb/HTTPServer.py
index fc637a4..51387b0 100644
--- a/lib/bridgedb/HTTPServer.py
+++ b/lib/bridgedb/HTTPServer.py
@@ -228,7 +228,7 @@ class WebResource(twisted.web.resource.Resource):
                      % (Util.logSafely(ip), request.args))
 
         rules = []
-        bridges = None
+        bridgeLines = None
 
         if ip:
             if ipv6:
@@ -252,12 +252,17 @@ class WebResource(twisted.web.resource.Resource):
                                                        self.nBridgesToGive,
                                                        countryCode,
                                                        bridgeFilterRules=rules)
+            bridgeLines = "".join("  %s\n" % b.getConfigLine(
+                includeFingerprint=self.includeFingerprints,
+                addressClass=addressClass,
+                transport=transport,
+                request=bridgedb.Dist.uniformMap(ip)
+                ) for b in bridges)
 
-        answer = self.renderAnswer(request, ip, bridges, rtl, format)
+        answer = self.renderAnswer(request, bridgeLines, rtl, format)
         return answer
 
-    def renderAnswer(self, request, ip=None, bridges=None,
-                     rtl=False, format=None):
+    def renderAnswer(self, request, bridgeLines=None, rtl=False, format=None):
         """Generate a response for a client which includes **bridges**.
 
         The generated response can be plaintext or HTML.
@@ -265,10 +270,9 @@ class WebResource(twisted.web.resource.Resource):
         :type request: :api:`twisted.web.http.Request`
         :param request: A ``Request`` object containing the HTTP method, full
                         URI, and any URL/POST arguments and headers present.
-        :type ip: str or None
-        :param ip: The IP address of the client we're responding to.
-        :type bridges: list or None
-        :param bridges: A list of :class:`~bridgedb.Bridges.Bridge`s.
+        :type bridgeLines: list or None
+        :param bridgeLines: A list of strings used to configure a Tor client
+                            to use a bridge.
         :param bool rtl: If ``True``, the language used for the response to
                          the client should be rendered right-to-left.
         :type format: str or None
@@ -279,22 +283,12 @@ class WebResource(twisted.web.resource.Resource):
         :rtype: str
         :returns: A plaintext or HTML response to serve.
         """
-        answer = None
-
-        if bridges and ip:
-            answer = "".join("  %s\n" % b.getConfigLine(
-                includeFingerprint=self.includeFingerprints,
-                addressClass=addressClass,
-                transport=transport,
-                request=bridgedb.Dist.uniformMap(ip)
-                ) for b in bridges) 
-
         if format == 'plain':
             request.setHeader("Content-Type", "text/plain")
             return answer
         else:
             request.setHeader("Content-Type", "text/html; charset=utf-8")
-            return lookup.get_template('bridges.html').render(answer=answer,
+            return lookup.get_template('bridges.html').render(answer=bridgeLines,
                                                               rtl=rtl)
 
 class WebRoot(twisted.web.resource.Resource):





More information about the tor-commits mailing list