[tor-commits] [torbutton/master] Bug 14937: Show meek and flashproxy bridges in tor circuit display

gk at torproject.org gk at torproject.org
Tue Mar 24 15:42:51 UTC 2015


commit c6321626cf04db74a8c08af19331c686757adc85
Author: Arthur Edelstein <arthuredelstein at gmail.com>
Date:   Sat Mar 21 16:32:07 2015 -0700

    Bug 14937: Show meek and flashproxy bridges in tor circuit display
---
 src/chrome/content/tor-circuit-display.js |   37 ++++++++++++++++-------------
 src/modules/tor-control-port.js           |    4 +---
 2 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index a4ba919..8997757 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -47,7 +47,7 @@ let credentialsToNodeDataMap = {},
 
 // __trimQuotes(s)__.
 // Removes quotation marks around a quoted string.
-let trimQuotes = s => s ? s.match(/^\"(.*)\"$/)[1] : undefined;
+let trimQuotes = s => s ? s.match(/^"(.*)"$/)[1] : undefined;
 
 // __getBridge(id)__.
 // Gets the bridge parameters for a given node ID. If the node
@@ -89,7 +89,8 @@ let nodeDataForID = function* (controller, id) {
   if (result.ip) {
     // Get the country code for the node's IP address.
     try {
-      result.countryCode = yield controller.getInfo("ip-to-country/" + result.ip);
+      let countryCode = yield controller.getInfo("ip-to-country/" + result.ip);
+      result.countryCode = countryCode === "??" ? null : countryCode;
     } catch (e) { }
   }
   return result;
@@ -190,22 +191,24 @@ let showCircuitDisplay = function (show) {
 let nodeLines = function (nodeData) {
   let result = [];
   for (let {ip, countryCode, type, bridgeType} of nodeData) {
-    let bridge = type === "bridge";
+    let bridge = type === "bridge",
+        country = countryCode ? localizedCountryNameFromCode(countryCode) : null;
     result.push(
-                // For each relay, show its apparent host country.
-                (countryCode ? localizedCountryNameFromCode(countryCode)
-                             : uiString("unknown_country")) +
-                (bridge ?
-                          // As we have a bridge, don't show the IP address
-                          // but show the bridge type.
-                          " (" + uiString("tor_bridge") +
-                          ((bridgeType !== "vanilla") ? (": " + bridgeType) : "") + ")"
-                        :
-                          // As we don't have a bridge, show the IP address
-                          // of the node. Use unicode escapes to ensure that
-                          // parentheses behave properly in both left-to-right
-                          // and right-to-left languages.
-                          " &#x202D; (" + (ip || uiString("ip_unknown")) + ")&#x202C;"));
+      bridge ?
+               // As we have a bridge, don't show the IP address
+               // but show the bridge type.
+               (uiString("tor_bridge") +
+                ((bridgeType !== "vanilla") ? (": " + bridgeType) : "") +
+                 (country ? " (" + country + ")" : ""))
+             :
+               // For each non-bridge relay, show its host country and IP.
+               (country || uiString("unknown_country")) +
+               // As we don't have a bridge, show the IP address
+               // of the node. Use unicode escapes to ensure that
+               // parentheses behave properly in both left-to-right
+               // and right-to-left languages.
+               " &#x202D; (" + (ip || uiString("ip_unknown")) + ")&#x202C;"
+    );
   }
   return result;
 };
diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index a55a0d8..710643e 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -476,11 +476,9 @@ info.bridgeParser = function(bridgeLine) {
   // Several bridge types have a similar format:
   } else {
     result.type = tokens[0];
-    if (["fte", "obfs3", "obfs4", "scramblesuit"]
+    if (["flashproxy", "fte", "meek", "obfs3", "obfs4", "scramblesuit"]
                .indexOf(result.type) >= 0) {
       [result.address, result.ID] = tokens.slice(1);
-    } else if (result.type === "meek") {
-      // do nothing for now
     }
   }
   return result.type ? result : null;





More information about the tor-commits mailing list