commit 6c064c5c652ec104ca600e9609ec53e6400ef9db Author: Kathy Brade brade@pearlcrescent.com Date: Thu Aug 29 15:09:50 2013 -0400
Bug #9445: Tor Launcher should be more relaxed about bridge line input.
Spaces are no longer turned into linebreaks. The "bridge" prefix is optional, but it is always added for display purposes. --- src/chrome/content/network-settings.js | 38 +++++++++++++++++------------ src/chrome/locale/en/network-settings.dtd | 2 +- 2 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js index bd0114e..35a1165 100644 --- a/src/chrome/content/network-settings.js +++ b/src/chrome/content/network-settings.js @@ -613,7 +613,7 @@ function initBridgeSettings() if (!gProtocolSvc.TorCommandSucceeded(bridgeReply)) return false;
- setElemValue(kBridgeList, bridgeReply.lineArray); + setBridgeListElemValue(bridgeReply.lineArray);
return true; } @@ -828,7 +828,7 @@ function getAndValidateBridgeSettings() return null; }
- setElemValue(kBridgeList, bridgeList); + setBridgeListElemValue(bridgeList); if (useBridges && bridgeList) { settings[kTorConfKeyUseBridges] = true; @@ -856,19 +856,7 @@ function parseAndValidateBridges(aStr) for (var i = 0; i < tmpArray.length; i++) { let s = tmpArray[i].trim(); // Remove extraneous whitespace. - if (s.indexOf(' ') >= 0) - { - // Handle a space-separated list of bridge specs. - var tmpArray2 = s.split(' '); - for (var j = 0; j < tmpArray2.length; ++j) - { - let s2 = tmpArray2[j]; - if (s2.length > 0) - resultArray.push(s2); - } - } - else if (s.length > 0) - resultArray.push(s); + resultArray.push(s); }
return (0 == resultArray.length) ? null : resultArray; @@ -963,6 +951,26 @@ function setElemValue(aID, aValue) }
+function setBridgeListElemValue(aBridgeArray) +{ + // To be consistent with bridges.torproject.org, pre-pend "bridge" to + // each line as it is displayed in the UI. + var bridgeList = []; + for (var i = 0; i < aBridgeArray.length; ++i) + { + var s = aBridgeArray[i].trim(); + if (s.length > 0) + { + if (s.toLowerCase().indexOf("bridge") != 0) + s = "bridge " + s; + bridgeList.push(s); + } + } + + setElemValue(kBridgeList, bridgeList); +} + + // Returns a Boolean (for checkboxes/radio buttons) or a // string (textbox and menulist). // Leading and trailing white space is trimmed from strings. diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd index 7923622..6ca8f2a 100644 --- a/src/chrome/locale/en/network-settings.dtd +++ b/src/chrome/locale/en/network-settings.dtd @@ -43,7 +43,7 @@ <!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports"> <!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:"> <!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network"> -<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays in the form address:port."> +<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line)."> <!ENTITY torsettings.useBridges.placeholder "address:port">
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
tor-commits@lists.torproject.org