summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2018-02-26 10:05:30 -0800
committerMicah Lee <micah@micahflee.com>2018-02-26 10:05:30 -0800
commit8299aad90bfab87a215a4045e9452cf8a8fad0ed (patch)
treef1c09aa3e1039555aa410514b994ab441b6c5188
parent88a765b7e1c230760654797edb9b17d1dfbf9191 (diff)
parent022ed032872e598c0f2a456f2074b78a9bfcd67c (diff)
downloadonionshare-8299aad90bfab87a215a4045e9452cf8a8fad0ed.tar.gz
onionshare-8299aad90bfab87a215a4045e9452cf8a8fad0ed.zip
Merge branch 'mig5-disable_meek_lite_on_macos_and_windows' into develop
-rw-r--r--CHANGELOG.md4
-rw-r--r--onionshare_gui/settings_dialog.py18
2 files changed, 15 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6169840b..4a03a151 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,8 +4,8 @@
* Major UI redesign, introducing many UX improvements
* Client-side web interfact redesigned
-* New feature: Support for meek_lite pluggable transports (Amazon and Azure)
-* New feature: Support for custom obfs4 and meek-lite bridges
+* New feature: Support for meek_lite pluggable transports (Amazon and Azure) - not yet ready for Windows or Mac, sorry
+* New feature: Support for custom obfs4 and meek_lite bridges (again, meek_lite not available on Windows/Mac yet)
* New feature: ability to cancel share before it starts
* Bug fix: the UpdateChecker no longer blocks the UI when checking
* Bug fix: simultaneous downloads (broken in 1.2)
diff --git a/onionshare_gui/settings_dialog.py b/onionshare_gui/settings_dialog.py
index 5666400c..7c81afc6 100644
--- a/onionshare_gui/settings_dialog.py
+++ b/onionshare_gui/settings_dialog.py
@@ -46,7 +46,7 @@ class SettingsDialog(QtWidgets.QDialog):
self.setWindowTitle(strings._('gui_settings_window_title', True))
self.setWindowIcon(QtGui.QIcon(common.get_resource_path('images/logo.png')))
- system = platform.system()
+ self.system = platform.system()
# Sharing options
@@ -135,7 +135,7 @@ class SettingsDialog(QtWidgets.QDialog):
autoupdate_group.setLayout(autoupdate_group_layout)
# Autoupdate is only available for Windows and Mac (Linux updates using package manager)
- if system != 'Windows' and system != 'Darwin':
+ if self.system != 'Windows' and self.system != 'Darwin':
autoupdate_group.hide()
# Connection type: either automatic, control port, or socket file
@@ -145,7 +145,7 @@ class SettingsDialog(QtWidgets.QDialog):
self.connection_type_bundled_radio.toggled.connect(self.connection_type_bundled_toggled)
# Bundled Tor doesn't work on dev mode in Windows or Mac
- if (system == 'Windows' or system == 'Darwin') and getattr(sys, 'onionshare_dev_mode', False):
+ if (self.system == 'Windows' or self.system == 'Darwin') and getattr(sys, 'onionshare_dev_mode', False):
self.connection_type_bundled_radio.setEnabled(False)
# Bridge options for bundled tor
@@ -184,6 +184,11 @@ class SettingsDialog(QtWidgets.QDialog):
self.tor_bridges_use_meek_lite_azure_radio = QtWidgets.QRadioButton(strings._('gui_settings_tor_bridges_meek_lite_azure_radio_option', True))
self.tor_bridges_use_meek_lite_azure_radio.toggled.connect(self.tor_bridges_use_meek_lite_azure_radio_toggled)
+ # meek_lite currently not supported on the version of obfs4proxy bundled with TorBrowser
+ if self.system == 'Windows' or self.system == 'Darwin':
+ self.tor_bridges_use_meek_lite_amazon_radio.hide()
+ self.tor_bridges_use_meek_lite_azure_radio.hide()
+
# Custom bridges radio and textbox
self.tor_bridges_use_custom_radio = QtWidgets.QRadioButton(strings._('gui_settings_tor_bridges_custom_radio_option', True))
self.tor_bridges_use_custom_radio.toggled.connect(self.tor_bridges_use_custom_radio_toggled)
@@ -830,10 +835,13 @@ class SettingsDialog(QtWidgets.QDialog):
ipv6_pattern = re.compile("(obfs4\s+)?\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\]:[0-9]+\s+[A-Z0-9]+(.+)$")
meek_lite_pattern = re.compile("(meek_lite)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)(\s)+url=(.+)(\s)+front=(.+)")
if ipv4_pattern.match(bridge) or \
- ipv6_pattern.match(bridge) or \
- meek_lite_pattern.match(bridge):
+ ipv6_pattern.match(bridge):
+ new_bridges.append(''.join(['Bridge ', bridge, '\n']))
+ bridges_valid = True
+ if self.system != 'Windows' and self.system != 'Darwin' and meek_lite_pattern.match(bridge):
new_bridges.append(''.join(['Bridge ', bridge, '\n']))
bridges_valid = True
+
if bridges_valid:
new_bridges = ''.join(new_bridges)
settings.set('tor_bridges_use_custom_bridges', new_bridges)