Commit graph

1086 commits

Author SHA1 Message Date
Cecylia Bocovich
2f37a73e71 bump version to 0.1.0 2019-11-13 13:36:30 -05:00
Cecylia Bocovich
a7040e2eee Update travis to use go v1.13.x 2019-11-13 11:39:33 -05:00
Cecylia Bocovich
b4b538a17f Implemented new broker messages for browser proxy 2019-11-13 10:54:48 -05:00
Cecylia Bocovich
c4ae64905b Redo protocol for proxy--broker messages
Switch to containing all communication between the proxy and the broker
in the HTTP response body. This will make things easier if we ever use
something other than HTTP communicate between different actors in the
snowflake system.

Other changes to the protocol are as follows:
- requests are accompanied by a version number so the broker can be
backwards compatable if desired in the future
- all responses are 200 OK unless the request was badly formatted
2019-11-13 10:54:48 -05:00
Arlo Breault
abefae1587 Restore sending close message before closing
And simplify EOF check.
2019-11-11 17:20:00 -05:00
Arlo Breault
c417fd5599 Stop using custom websocket library in server
Trac: 31028
2019-11-11 17:20:00 -05:00
Cecylia Bocovich
300a23c6a0 Changed variable name for multiplexed clients
The variable maxNumClients was unused, while connectionsPerClient was
used for spawning multiple proxyPairs. The former is a more appropriate
name for the multiplexing behaviour we use it for.

Multiplexing now just works thanks to implementing ticket #31310.
2019-10-31 12:08:43 -04:00
Cecylia Bocovich
64b66c855f Moved function comments to their definitions
Increase readability of code a bit, the function descriptions were
automatically placed in the constructor when we moved from coffeescript.
2019-10-31 11:59:13 -04:00
Cecylia Bocovich
789285e0df Remove "active" property of proxyPairs
Use their existence in the proxy pair list to indicate they are active.
2019-10-31 11:59:13 -04:00
Cecylia Bocovich
d186fcd401 Remove property "running" from proxy-pair
We don't need it, and already have a function webrtcIsReady that tells
us what we need to know (whether a datachannel was opened before the
timeout period).
2019-10-31 11:59:13 -04:00
Cecylia Bocovich
9b470fbe4b Removed "janky" snowflake state machine
The only place it was used was in window.onpageunload, and we have a
better way of determining if the proxy is active there (through the ui).

I also removed that code from the webextension since the proxy won't
stop running unless you close the browser and after testing it looks
like that code doesn't notify the user anyway.
2019-10-31 11:59:13 -04:00
Cecylia Bocovich
338f1792b8 bump version to 0.0.13 2019-10-28 10:55:51 -04:00
David Fifield
e408988387 Increase proxy poll interval to 300 s.
https://bugs.torproject.org/32129
2019-10-28 10:51:49 -04:00
Cecylia Bocovich
11bd32f62e Remove now unecessary timeoutConn 2019-10-25 17:12:45 -04:00
Cecylia Bocovich
76087a6a77 Don't log error messages from SetDeadline
We haven't implemented SetDeadline for webRTCConn and the error messages
are misleading to proxy-go operators.
2019-10-25 15:34:41 -04:00
Cecylia Bocovich
da8b98d090 Include language name with along with code
Use npm cldr package to get the language name that corresponds to the
country code for the language switcher
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
93d3564109 A few minor fixes to website
- cut down on size of bootstrap.css file
- remove unecessary styles
- fixed typo in javascript comment
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
ab96817381 Added a language switcher for snowflake.tp.o
Also modified the styling of the page to match the main tp.o page a bit
more
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
f6517f60ce Hook up localized messages.json to website
Right now we use the navigator language to determine localization and
replace the website contents with translated strings.
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
9140c7648c Switched to absolute paths for resources
This will make it easier to have translated copies of the site in
subdirectories
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
7fe4e2910c Translate snowflake@tp.o website
Switched to using messages.json for translation strings for
snowflake@tp.o
2019-10-16 12:32:45 -04:00
Cecylia Bocovich
d064e54db9 bump version to 0.0.12 2019-10-16 10:30:20 -04:00
Cecylia Bocovich
b9138d0c7e Make sure we close peer connections in proxy
Not closing peer connections was causing UDP sockets to remain open
indefinitely (as reported in ticket #31285).
2019-10-16 10:26:51 -04:00
Cecylia Bocovich
f74da6e0fc Update try catch blocks to revert changes on error
A failure to set the git tag returns and undoes the changes done
previously
2019-10-16 10:23:54 -04:00
Cecylia Bocovich
6e6e52fd8c Added packaging script for webextension
Added a new script to package the webextension. This will automatically
build and zip the source code and the webextension for upload. It take a
version as an argument and then checks the version in the manifest, and
locally commits a version bump.
2019-10-16 10:23:54 -04:00
David Fifield
b4f4b29a03 Stop counting handlers before terminating.
The requirement to do so is obsolete and has already been removed from
other pluggable transports.

https://bugs.torproject.org/32046
2019-10-11 16:50:25 -06:00
Arlo Breault
d8d3170af8 Regenerate the ico files to reduce size
With,
convert -background transparent toolbar-off.svg -define icon:auto-resize=32 toolbar-off.ico
2019-10-11 13:18:51 -04:00
Arlo Breault
faf02d86a1 Update favicon with badge state on embed.html
.ico files were created with,
convert -density 256x256 -background transparent toolbar-on.svg -define icon:auto-resize -colors 256 toolbar-on.ico

Trac: 31537
2019-10-11 13:18:51 -04:00
David Fifield
5732f1a630 Add --chown=:snowflake to rsync commands.
Thanks cohosh for helping debug this. Uploaded files need correct group
ownership.
2019-10-11 10:37:06 -06:00
Cecylia Bocovich
61d8eb5ef0 bump version to 0.0.11 2019-10-11 10:40:56 -04:00
Shane Howearth
01156e58eb Remove unnecessary initialisation of last
last was initialised twice (creating a shadow), the second time inside
a case statement. The second initialisation is removed, keeping the use
of last aligned to the isame style as its use other parts of the case
statement.
2019-10-08 10:25:44 -04:00
Shane Howearth
8bbdb3b51a Bring code into line with Golangci-lint linters
- Error strings are no longer capitalized nor end with punctuation
- Alias import
- Remove extraneous initilisation code (No need to provide zero value
	for variables, because the compiler does that anyway)
2019-10-08 10:25:44 -04:00
Shane Howearth
b26c7a7a73 Handle generated errors in client 2019-10-08 10:25:44 -04:00
Shane Howearth
78a37844b2 Handle generated errors in proxy-go 2019-10-08 10:25:36 -04:00
Shane Howearth
3cfceb3755 Handle generated errors in broker 2019-10-08 10:13:29 -04:00
Shane Howearth
ed3d42e1ec Handle generated errors in server 2019-10-08 10:12:36 -04:00
Shane Howearth
3ec9dd19fa Handle generated errors in server-webrtc 2019-10-08 10:12:36 -04:00
Cecylia Bocovich
82e5753bcc Reverted logging changes that require Go 1.13 2019-10-08 09:58:12 -04:00
Cecylia Bocovich
18d793798c Updated snowflake client dependencies in README 2019-10-08 09:52:45 -04:00
Cecylia Bocovich
2bf4be71b6 Bumped Go version to access log.Writer 2019-10-08 09:27:52 -04:00
Cecylia Bocovich
2b04357550 Connect pion library logger with snowflake log
We need to set up the pion/webrtc logger to write output to the
snowflake log, otherwise the warnings we are getting from the pion
library are being lost.

Note: this requires go version 1.13 and later in order to use the
`log.Writer()` function.
2019-10-08 09:27:52 -04:00
Cecylia Bocovich
97bab94e67 Make sure command line ice servers are used
This commit fixes a small error introduced in a previous commit. Servers
given by command line options weren't being added to the configuration
because we were checking for `iceServers` to be nil instead of not nil.
2019-10-08 09:27:52 -04:00
Cecylia Bocovich
6cf53c4ef0 Update .travis.yml for new webrtc library 2019-10-08 09:27:52 -04:00
Cecylia Bocovich
b5c50b69d0 Ported snowflake client to work with pion/webrtc
Modified the snowflake client to use pion/webrtc as the webrtc library.
This involved a few small changes to match function signatures as well
as several larger ones:
- OnNegotiationNeeded is no longer supported, so CreateOffer and
SetLocalDescription have been moved to a go routine called after the
other peer connection callbacks are set
- We need our own deserialize/serialize functions
- We need to use a SettingEngine in order to access the
OnICEGatheringStateChange callback
2019-10-08 09:27:52 -04:00
Cecylia Bocovich
0428797ea0 Modified proxy-go to use pion/webrtc
The API is very similar, differences were mostly due to:
- closing peer connections and datachannels (no destroy/delete methods)
- different way to set datachannel/peer connection callbacks
- differences in whether functions take pointers or values
- no serialize/deserialize functions in the API
2019-10-08 09:27:52 -04:00
Cecylia Bocovich
9e22af90c1 Updated webextension translations 2019-10-04 13:52:07 -04:00
David Fifield
be7b531586 Remove obsolete status tracking section from README.
Noted by a blog commenter at
https://blog.torproject.org/comment/284258#comment-284258

In case the above link breaks, it's a comment attached to this post:
https://blog.torproject.org/new-release-tor-browser-90a7
2019-10-02 17:48:34 -06:00
Arlo Breault
36eb07a6fc Use a static label for the button
Trac: 31685
2019-10-01 14:27:19 -04:00
Arlo Breault
a5071ec1d6 Add a favicon
Trac: 31537
2019-09-30 19:18:52 -04:00
Arlo Breault
8d81270a9f Add bridge probe to badge 2019-09-30 18:42:57 -04:00