Commit Graph

398 Commits

Author SHA1 Message Date
Micah Lee
ec7fa4ef16
Solve obnoxious cx_Freeze issue that broke websockets by enforcing async_mode=gevent, and including the correct modules in the build 2021-12-21 16:55:59 -08:00
Micah Lee
3da0b7a3ea
Enable websocket logs in verbose mode 2021-12-21 15:01:35 -08:00
Micah Lee
7e55e8e816
Fix permission denied error in Windows, which was introduced using tempfile.NamedTemporaryFile, by using a TemporaryDirectory instead 2021-12-21 14:28:23 -08:00
Micah Lee
f4fb212dbc
Fix finding tor binary paths in Windows 2021-12-21 14:15:52 -08:00
Micah Lee
bd12949652
Update python dependencies 2021-12-21 14:15:20 -08:00
Micah Lee
4ab5e0003c
Merge pull request #1489 from mig5/meek_stdout_cleanup_fix
Don't enqueue stdout from Meek subprocess in a Thread
2021-12-20 12:13:21 -08:00
Miguel Jacq
a385e1ffed
Add a CensorshipCircumventionError class that is raised if there's a requests exception connecting to the Tor API 2021-12-20 14:50:09 +11:00
Miguel Jacq
e6a17bc743
Force the MIME type for .js files to be text/javascript, to override silly OS databases/registries with incorrect settings, which Flask would otherwise depend on 2021-12-17 17:53:15 +11:00
Miguel Jacq
2689f35635
Don't enqueue stdout from Meek subprocess in a Thread, just read it as it comes. Solves infinite loop queue read issue on cleanup() 2021-12-15 18:28:55 +11:00
Miguel Jacq
4f40a9b501
Tweaks to CensorshipCircumvention and also Meek cleanup fixes that were causing a crazy read loop on the stdout queue 2021-12-15 18:22:18 +11:00
Miguel Jacq
12b725e821
Need to reconnect to Tor with the curr_settings Settings object after obtaining new bridges 2021-12-14 14:57:01 +11:00
Miguel Jacq
1aa67f8406
Fix the saving of bridges received from CensorshipCircumvention API - need to also save the bridges_enabled setting else TorSettingsTab doesn't show them 2021-12-14 14:32:00 +11:00
Miguel Jacq
3f4cb6a02e
Use the CensorshipCircumvention methods to fetch bridges for the country/autodetection 2021-12-14 10:48:47 +11:00
Micah Lee
8fe54afe13
Merge branch 'censorship' into 1422_autodetect_location 2021-12-12 10:27:01 -08:00
Miguel Jacq
be8a2a894f
Update our bridge templates with the latest built-in bridges in the get-tor scripts 2021-12-10 16:48:39 +11:00
Micah Lee
8416d089f4
Make automatic detection flip through country names while it's running meek 2021-12-06 20:54:03 -08:00
Micah Lee
feaecc9e4d
Merge branch 'mig5-censorship_automatically_attempt_and_reconnect' into 1422_autodetect_location 2021-12-06 20:11:41 -08:00
Micah Lee
09ac74a1be
Add country dropdown 2021-12-06 20:01:28 -08:00
Micah Lee
08ed7dab65
Oops, default connect_timeout should still be 120s 2021-12-06 19:42:43 -08:00
Micah Lee
339fc9338e
Start making UseBridgeWidget, and add json files that list country names for each enabled locale 2021-12-06 19:39:44 -08:00
Micah Lee
75d286386b
Merge branch 'censorship_automatically_attempt_and_reconnect' of https://github.com/mig5/onionshare into mig5-censorship_automatically_attempt_and_reconnect 2021-12-04 20:40:58 -08:00
Micah Lee
a71a4f9baa
Merge branch 'develop' of https://github.com/a1346054/onionshare into a1346054-develop 2021-12-04 20:34:07 -08:00
Micah Lee
20c291161e
Merge pull request #1432 from nyxnor/cli-shell-instructions
POSIX compliant input path on any shell
2021-12-04 20:31:25 -08:00
Micah Lee
27ee69a220
Merge pull request #1478 from mig5/fetch-builtin-bridges
Fetch the built-in bridges from Tor's Censorship Circumvention API, rather than hardcode them
2021-12-04 20:28:04 -08:00
Saptak S
5ca7236f0c
Fixes CLI tests 2021-12-03 20:03:22 +05:30
Micah Lee
1dde6f6deb
Add temp file to cleanup list just once when its first created 2021-12-02 18:51:06 -08:00
Micah Lee
b3d53ca2f2
Fix CLI tests 2021-12-01 21:01:32 -08:00
Micah Lee
c8ba508d26
Merge branch 'develop' into 1470_tempfiles 2021-12-01 20:37:45 -08:00
Micah Lee
8ec9a24af1
Explicitly cleanup temp files and dirs 2021-12-01 20:34:54 -08:00
Micah Lee
109d63a10c
Use NamedTemporaryFile instead of TemporaryFile, to fix crash when sharing one file 2021-12-01 20:10:51 -08:00
Miguel Jacq
81cf9aabe8
Fix conflicts 2021-11-30 10:54:17 +11:00
Miguel Jacq
3273832da7
Make the saving of the automatically-obtained bridges reusable (move it to CensorshipCircumvention class). Add the same functionality used in TorConnectionWidget to TorConnectionDialog. 2021-11-30 10:50:47 +11:00
Miguel Jacq
b151eeb3c3
Make sanity checking of bridges a reusable component in cli.Common, so we can reuse it for automatic bridge fetching in censorship circumvention 2021-11-30 10:01:14 +11:00
Saptak S
98f6f3b7d7
Checks if username is ASCII string else throw an error 2021-11-30 01:19:29 +05:30
Miguel Jacq
546633ac62
remove import of requests module in Onion 2021-11-27 11:14:05 +11:00
Miguel Jacq
55c8ada6ef
Move the ability to use Tor vs Meek into the CensorshipCircumvention class so that we can use those endpoints over Tor elsewhere later 2021-11-27 10:35:25 +11:00
Miguel Jacq
06a3599fe1
Built-in bridge refactoring.
Store the built-in bridges in OnionShare settings as a dict, and try writing those into the torrc if present.

If they aren't present in OnionShare settings, use the hardcoded templates instead.

Fetch the latest built-in bridges over Tor, once connected to Tor.

If we can't fetch the bridges over Tor, fall back to Meek (domain-fronting) and try again.

Then write those as the dict to the OnionShare settings, to take precedence next time.
2021-11-24 17:55:47 +11:00
Micah Lee
a4985e7029
Support sending a custom Content-Security-Policy header in Website mode 2021-11-23 18:44:14 -08:00
Miguel Jacq
f8dd9547cd
Raise exception if the API didn't return bridges for a specific bridge type, or if the bridge type wasn't recognized 2021-11-23 15:36:41 +11:00
Miguel Jacq
19072503a9
Fetch the built-in bridges from Tor's Censorship Circumvention API, rather than hardcode them 2021-11-23 15:28:40 +11:00
Saptak S
3422364fa1
Merge branch 'censorship' of github.com:onionshare/onionshare into auto-connect-ui 2021-11-19 18:29:47 +05:30
Saptak S
2a68b5bce1
Removes invisible whitespace characters from username in chat 2021-11-19 15:25:10 +05:30
Micah Lee
b659eccfbf
Use a NamedTemporaryFile instead of TemporaryFile for streamed gzip files 2021-11-18 20:17:39 -08:00
Micah Lee
1d0d30458c
Merge pull request #1447 from tladesignz/develop
Fixed send.js table sorting.
2021-11-18 20:14:14 -08:00
Micah Lee
f5b60de2e6
Use high level tempfile classes that clean up after themselves 2021-11-18 20:03:18 -08:00
Micah Lee
627f44c423
Merge branch 'advisory-fix-1' of github.com:onionshare/onionshare-ghsa-jh82-c5jw-pxpc into ros-fixes 2021-11-18 19:16:00 -08:00
Micah Lee
5f5b761fcf
Merge branch 'chat-session-handling' of github.com:onionshare/onionshare-ghsa-gjj5-998g-v36v into ros-fixes 2021-11-18 19:15:24 -08:00
Micah Lee
09d2c2a7f8
Merge branch 'advisory-fix-1' of github.com:onionshare/onionshare-ghsa-h29c-wcm8-883h into ros-fixes 2021-11-18 19:13:41 -08:00
Micah Lee
221eb1cbac
Fix comment 2021-11-16 18:10:25 -08:00
Micah Lee
267e9eb1e4
Exception handling on printing the banner 2021-11-15 18:16:10 -08:00
Micah Lee
a4db0d26c9
Fix for meek to working in snapcraft 2021-11-15 18:07:57 -08:00
Saptak S
8ec28da4fe
Fixes typo 2021-11-15 19:53:02 +05:30
Micah Lee
99c85f55e2
Fix bug that was preventing tor from connecting in snapcraft 2021-11-14 20:53:22 -08:00
Micah Lee
f09bb66425
Snap successfully builds meek-client, and WIP getting tor to connect 2021-11-14 17:52:40 -08:00
Micah Lee
0f63c89a59
Detect Flatpak via environment variable 2021-11-14 17:16:21 -08:00
Micah Lee
70248ed4a5
Upgrade to cepa 1.8.3 2021-11-14 16:24:36 -08:00
Micah Lee
365ddc5e34
Merge branch 'develop' into 1459_linux_packaging 2021-11-14 13:28:45 -08:00
Saptak S
b9d9f14916
Refuses connection if another session is already active 2021-11-14 23:44:16 +05:30
Saptak S
6429392a40
Adds username validation for socketio event handler as well 2021-11-14 23:28:17 +05:30
Saptak S
2a7c3d6867
Renames message event to chat_message 2021-11-14 21:06:47 +05:30
Saptak S
f4ade1ba8d
Removed room from chat
- Uses the global room instead of adding and leaving room for users
- Removes the joining event and triggers connection status from
server as soon as a connection event is received in server side
2021-11-14 20:58:21 +05:30
Micah Lee
f00d2cc0b0
Switch stem with cepa, and update CLI packages 2021-11-12 15:47:33 -08:00
Miguel Jacq
80e7316249
Allow website mode to stop even if people have viewed it 2021-11-12 11:58:48 +11:00
Miguel Jacq
f5e4d70731
Remove unnecessary censorship class invocation, which breaks CLI mode right now.
Fix Website and Chat modes with auto-stop timer in CLI mode.

Add 'poetry run onionshare-cli' tests to CircleCI to catch CLI runtime bugs.
2021-11-12 11:43:09 +11:00
Miguel Jacq
dbae142a87
Resolve conflicts in locale 2021-11-12 10:56:15 +11:00
Miguel Jacq
b727a9651f
Initial work on supporting the option to automatically attempt to fetch bridges based on the user's location if Tor fails to connect (censorship circumvention) 2021-11-11 17:33:19 +11:00
Miguel Jacq
096178a9e6
Use microseconds for Receive Mode dir/file names 2021-11-09 12:30:48 +11:00
Miguel Jacq
627c185fcb
Support sending a custom Content-Security-Policy header in Website mode 2021-11-08 16:31:05 +11:00
Micah Lee
9430439b5f
Fix meek-client in Windows 2021-11-07 12:12:12 -08:00
Saptak S
e4f9f5f212
Initial structuring of the enable quickstart screen 2021-10-28 14:14:25 +05:30
Micah Lee
9515fe6aaf
Remove all references to old settings 2021-10-26 21:07:38 -07:00
Micah Lee
2b3b6d7635
Update bridge related settings in Settings, and use those new settings in Onion 2021-10-26 21:06:05 -07:00
Micah Lee
54f4f2a53f
Oops, fix meek-client path 2021-10-24 20:26:36 -07:00
Micah Lee
44f4053603
Make meek debug log show host:port on one line 2021-10-24 20:23:55 -07:00
Micah Lee
e33fc49815
Merge branch 'censorship' into 1442_settings_tabs 2021-10-24 20:23:38 -07:00
Micah Lee
e6c7cc989f
Only show bridge error if connection type is bundled 2021-10-24 20:03:19 -07:00
Miguel Jacq
54bfca5f4b
Move debug log call in meek.start() 2021-10-25 11:56:33 +11:00
Miguel Jacq
8543d215dc
Fix-ups for detecting if the meek binary doesn't exist. Pass the GUI's get_tor_paths down to the CLI when instantiating Meek object 2021-10-25 11:45:50 +11:00
Micah Lee
c3eeaefb9f
In CLI get_tor_path, stop trying to look in resources first 2021-10-24 17:35:24 -07:00
Miguel Jacq
6f0674afd8
React to Meek client binary not found 2021-10-25 11:12:38 +11:00
Miguel Jacq
3a715346af
Add cleanup method for the Meek class to kill any meek-client subprocesses once done. Hide stderr from the CLI printed output 2021-10-25 10:44:38 +11:00
Miguel Jacq
c81862130b
Fix comment about meek-client.exe subprocess 2021-10-25 10:28:06 +11:00
Benjamin Erhart
f3f25166d4 Fixed send.js table sorting. Looks like it stopped working a long time ago. 2021-10-22 12:21:22 +02:00
Miguel Jacq
1fa82818c3
Add meek_client stuff to CLI tests 2021-10-20 15:55:24 +11:00
Miguel Jacq
242312ba82
Fix conflicts from snowflake merge, and fix detection of lack of meek in Moat BridgeDB request 2021-10-20 15:52:29 +11:00
Micah Lee
3aa7902695
Don't print Bridge lines in torrc for blank lines 2021-10-19 08:50:33 -07:00
Miguel Jacq
5b4d77c363
Refactor to CensorshipCircumvention and Meek classes. Use Meek domain fronting when requesting bridges in frontend 2021-10-19 11:36:03 +11:00
Miguel Jacq
bcf697574e
merge 1442_snowflake branch and fix conflicts 2021-10-19 09:49:46 +11:00
Miguel Jacq
0989f2b133
Move Censorship stuff into its own class. Early attempt at subprocessing out to meek (unfinished) 2021-10-18 17:17:47 +11:00
Micah Lee
a89412e79d
Make it so when selecting moat tor actually uses those bridges, and improve tor settings dialog 2021-10-17 15:47:11 -07:00
Micah Lee
01b51e94bf
Save/load moat bridges to/from settings 2021-10-17 14:26:56 -07:00
Micah Lee
6bf839f826
In some distros, LD_LIBRARY_PATH must be explicitly set for tor to work 2021-10-17 12:16:03 -07:00
Micah Lee
64973a00ec
Fix CLI tests 2021-10-15 09:21:58 -07:00
Micah Lee
2ffd15ae82
Move ClientTransportPlugin into normal torrc file, and fix snowflake support 2021-10-15 09:17:03 -07:00
Miguel Jacq
c9fa2308a7
Add early (non-domain-fronted!) methods for interacting with the planned Tor censorship circumvention moat endpoints.
This is based on loose specs from https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/40025
2021-10-15 14:58:32 +11:00
a1346054
cea34725f1
Fix whitespace issues
* make sure files contain a final newline
* use consistent indentation
* trim excess whitespace
* trim trailing whitespace
2021-10-14 21:48:12 +00:00
a1346054
601e215565
Fix spelling 2021-10-14 21:48:12 +00:00
Micah Lee
39d624e923
Allow selecting a snowflake bridge, and make it try to use the snowflake bridge 2021-10-13 21:11:56 -07:00
Micah Lee
229da0aaab
Make get_tor_paths work properly now that in linux the tor binaries are bundled too 2021-10-11 20:45:28 -07:00
Micah Lee
343a8cccc1
Update dependencies 2021-10-11 20:44:42 -07:00
Micah Lee
5de48bba6e
Change all version to 2.4, update languages, rebuild docs, update tor from Tor Browser 2021-09-26 11:41:01 -07:00
nyxnor
99f86815d7
s/source/./ 2021-09-20 17:21:05 +02:00
nyxnor
ffd9327761 POSIX compliant input path on any shell 2021-09-11 08:10:37 +02:00
Micah Lee
f454c58c57
Change version to 2.4.dev1, to make a dev release 2021-09-10 13:38:00 -07:00
Micah Lee
3d2f8a6c18
Version bump to 2.4 2021-09-10 12:45:21 -07:00
Micah Lee
9e4df9c8e0
Bump version to 2.4 in cli and docs 2021-09-09 19:50:02 -07:00
Saptak S
6edab6877a
Removes trailing slash from directories inside directories 2021-09-04 20:41:22 +05:30
Saptak S
3620bf3a0c
Updates send.html to use file link instead of basename 2021-09-04 19:17:30 +05:30
Micah Lee
b09c3bc48b
Merge pull request #1411 from nyxnor/cli-installation-instructions
Cli installation instructions
2021-09-03 14:38:03 -07:00
Micah Lee
3d698d0fb7
Merge pull request #1413 from mig5/cli_allow_persistent_mode_as_only_arg
Don't force mode to be sent in CLI if --persistent is in use. Store the persistent mode only the first time the persistent file is created
2021-09-03 13:27:53 -07:00
Micah Lee
aac8020c3e
Merge pull request #1416 from SaptakS/fix-chat-shutdown
Adds exception for ConnectionError in chat mode during shutdown
2021-09-03 13:23:43 -07:00
Saptak Sengupta
1b5b6a6b71
Merge pull request #1399 from easyteacher/develop
Make last_modified and if_date timezone-aware (Fix #1398)
2021-09-04 00:13:12 +05:30
Saptak Sengupta
810288b9c4
Merge pull request #1358 from whew/add_security_headers
Add security headers to every response
2021-09-04 00:12:21 +05:30
Fushan Wen
f4b35f25d3 Make last_modified and if_date timezone-aware
Fix #1398
2021-09-03 00:07:48 +08:00
Saptak S
5a7ab3c12e
Adds exception for ConnectionError in chat mode during shutdown
The way flask-socketio stops a connection when running using
eventlet is by raising SystemExit to abort all the processes.
Hence the connections are closed and no response is returned
So I am just catching the ConnectionError to check if it was
chat mode, in which case it's okay.
2021-09-02 18:57:21 +05:30
Kushal Das
e4178cff49
Fixes typos about Linux as platform name
It is `linux` not 'Linux' in sys.platform
2021-09-02 08:31:30 +05:30
nyxnor
a0e322a906
remove duplicated comma 2021-08-31 11:59:07 +02:00
Miguel Jacq
686e5abd0e
Don't force mode to be sent in CLI if --persistent is in use. Store the persistent mode only the first time the persistent file is created 2021-08-31 17:53:50 +10:00
nyxnor
10a0c522bf
site refer to readme and README corrections 2021-08-31 03:34:44 +02:00
nyxnor
80b2fe15f1
correct formatting 2021-08-30 22:56:25 +02:00
nyxnor
f0d823bdcc
installation instructions 2021-08-30 22:54:24 +02:00
Miguel Jacq
dd7938a134
Merge develop and resolve conflict 2021-08-30 13:41:15 +10:00
Miguel Jacq
a08f303f89
Remove rate-limit related code, and a couple more places where flask-httpauth was referenced 2021-08-28 09:41:09 +10:00
Miguel Jacq
0bf8f53d30
ClientAuthV3 fixes
* Remove Client Auth as an explicit option (it's on by default).
 * Update wording about Public mode
 * Fix tuple error when raising TorTooOldStealth exception in CLI
 * Move Private Key button next to URL button in GUI
 * Replace visual references of ClientAuth to Private Key
 * Remove HTTPAuth Flask dependency and remove a lot of code to do with password generation,
   401 auth triggers/invalid password rate limit detection etc
 * Test updates
 * Remove obsolete locale keys
2021-08-27 15:52:29 +10:00
Miguel Jacq
f63e0c37d1
Upgrade to Stem 1.8.1 (our fork) to satisfy wheel build. Raise minimumHeight to avoid cutoff of client auth option in sharing settings 2021-08-27 10:07:29 +10:00
Miguel Jacq
cbdf2594c6
merge develop branch into client_auth_v3 branch and use our forked stem which works with poetry 2021-08-27 09:44:43 +10:00
Micah Lee
6049509db6
Change github URLs from micahflee/onionshare to onionshare/onionshare 2021-08-20 13:34:55 -07:00
Micah Lee
300189d95b
Add Lithuanian 2021-08-20 13:24:15 -07:00
Micah Lee
f71e320ca3
Version bump to 2.3.3 2021-08-20 13:13:39 -07:00
Micah Lee
c6451e097c
Remove endpoint altogether because it's not needed 2021-08-20 11:59:26 -07:00
Micah Lee
54f204fc5d
Merge branch 'develop' of https://github.com/twann4/onionshare into twann4-develop 2021-08-20 11:58:15 -07:00
Twann
aa89c2192f
Fix issue #1365 2021-08-19 16:15:53 +02:00
SIDDHANT DIXIT
58e16e29b0 Updated test cli settings
Added theme key in test_cli_settings.py.
2021-07-22 02:37:24 +05:30
SIDDHANT DIXIT
3cbe55916b Added user theme preference option in Settings
Added an option to choose theme in settings dialog like auto, light and dark.
Fixed Dark Mode Dark Text.
2021-07-19 18:27:02 +05:30
BotMaster3000
a509bbae5b Set the word-break to break-word for the message-class, and removed the max-width again
As said by SaptakS, I applied the word-break to the message-Class. Since this breaks the line for long words without Spaces, as well as longer sentences, this is the better solution.
Since the max-width now is redundant, it got removed again, as to not cause any future confusion.
2021-06-07 22:29:40 +02:00
BotMaster3000
5c4558ace5 Set the Max-Width of the Chat-Window to 80%
Too long single-line messages can cause the ChatUser-Panel to disappear.
Allowing the windows of the Chat to be only 80% of width will cause a automatic linebreak in such a case.
2021-06-07 20:15:10 +02:00
Micah Lee
d79e2323c0
Update release docs, and update CLI poetry lock 2021-06-01 19:39:34 -07:00
Micah Lee
08d15fd3f1
Update version strings, docs, and release.md for version 2.3.2 2021-05-31 10:36:07 -07:00
whew
a132cd28f5
fix another typo... 2021-05-31 12:28:57 +00:00
whew
3f4f5e22ec
fix typo 2021-05-31 12:23:32 +00:00
whew
eeacd8c507
Merge branch 'develop' into add_security_headers 2021-05-31 12:13:58 +00:00
whew
56dd2d0b84
resolve conflict in chat_mode.py 2021-05-31 12:05:31 +00:00
whew
b8b7885a52
resolve conflict in web.py 2021-05-31 12:04:24 +00:00
Micah Lee
da2e22c140
Account for the "v" in the version string ("v2.3.2") banner spacing 2021-05-25 17:31:28 -07:00
Micah Lee
c682b7ec01
Merge branch 'fix_405_error_and_other_methods' of https://github.com/mig5/onionshare into mig5-fix_405_error_and_other_methods 2021-05-25 16:27:26 -07:00
Miguel Jacq
d7ce658628
Pin Flask at 1.1.4 to avoid Flask 2.0.0 which requires Jinja2 3.0.0 but the latter of which conflicts with Briefcase 2021-05-17 09:02:47 +10:00
Miguel Jacq
b66b5eca4d
Use label tag for chat username label, and rename javascript function to checkUsernameTooLong to better reflect its purpose 2021-05-17 08:17:45 +10:00
Miguel Jacq
00473eaef6
Prevent usernames in Chat mode of length 128 chars or more 2021-05-14 10:44:14 +10:00
whew
ea72440543
Update web.py 2021-05-13 08:17:51 +00:00
whew
04fae8ada1
Update share_mode.py 2021-05-13 08:15:17 +00:00