Commit graph

767 commits

Author SHA1 Message Date
David Fifield
f1ab65b1c0 Close the melt channel, don't just send once on it.
Closing the channel makes it always immediately selectable.
2020-01-23 11:24:00 -07:00
David Fifield
febb4936f6 Refactor SOCKS-related logging. 2020-01-23 11:24:00 -07:00
David Fifield
aa3999857f Move ICE server logging out of parseIceServers. 2020-01-23 11:24:00 -07:00
David Fifield
509f634506 NewWebRTCDialer cannot return an error. 2020-01-23 11:24:00 -07:00
David Fifield
d6467ff585 Formatting improvements. 2020-01-23 10:43:31 -07:00
David Fifield
e27709080a Update a comment: we no longer keep track of handlers. 2020-01-23 10:42:35 -07:00
David Fifield
5ff75e1034 Remove erroneous logging around pt.*Error calls.
These functions are called for their side effect of sending a PT error
message on stdout; they also return a representation of the error
message as an error object for the caller to use if it wishes. These
functions *always* return a non-nil error object; it is not something to
be logged, any more than the return value of errors.New is.

The mistaken logging was added in
https://bugs.torproject.org/31794
b26c7a7a73
3ec9dd19fa
ed3d42e1ec
2020-01-20 23:57:31 -07:00
Jascha
37aaaffa15 proxy/make.js: add help output 2019-12-13 16:17:43 -07:00
Arlo Breault
1e45d48a3c Document setting the proxyType for metrics
Trac: 32499
2019-12-06 17:54:54 -05:00
Arlo Breault
af4cc52dc2 Add a build step / documentation for code reuse
Trac: 32499
2019-12-06 17:19:46 -05:00
Cecylia Bocovich
3bdcc3408e Increased test coverage for messages library 2019-12-06 11:30:34 -05:00
Cecylia Bocovich
0f99c5ab12 Touched up snowflake client tests
There were a few tests that needed refreshing since the introduction of
the pion library. Also added a few tests for the ICE server parsing
function in the client.
2019-12-06 11:30:34 -05:00
Cecylia Bocovich
dabdd847ce Expanded snowflake server tests
Now tests the proxy and initServer functionalities. The tests use the
same websocket library as the server and proxy-go implementations.
2019-12-06 11:28:41 -05:00
Cecylia Bocovich
06298eec73 Added another lock to protect broker stats
Added another lock to the metrics struct to synchronize accesses to the
broker stats. There's a possible race condition if stats are updated at
the same time they are being logged.
2019-12-05 10:17:20 -05:00
Cecylia Bocovich
42e16021c4 Add tests to check for data race in broker
We had some data races in the broker that occur when proxies and clients
modify the heap/snowflake map at the same time. This test has a client
and proxy access the broker simultaneously to check for data races.
2019-12-05 10:16:34 -05:00
Cecylia Bocovich
dccc15a6e9 Add synchronization to prevent race in broker
There's a race condition in the broker where both the proxy and the
client processes try to pop/remove the same snowflake from the heap.
This patch adds synchronization to prevent simultaneous accesses to
snowflakes.
2019-12-05 09:47:26 -05:00
Cecylia Bocovich
07f2cd8073 bump version to 0.2.0 2019-12-03 14:09:05 -05:00
Cecylia Bocovich
94de69aa36 Updated broker specification and comments 2019-11-28 13:52:58 -05:00
Cecylia Bocovich
97554e03e4 Updated proxyType variable name for readability 2019-11-28 13:52:58 -05:00
Cecylia Bocovich
981abffbd9 Add proxy type to stats exported by broker 2019-11-28 13:52:58 -05:00
Cecylia Bocovich
8ab81fc6cd Update proxy config to take proxy type
This allows badge and standalone proxies to tell the broker what proxy
type they are.
2019-11-28 13:52:58 -05:00
Cecylia Bocovich
7277bb37cd Update broker--proxy protocol with proxy type
Proxies now include information about what type they are when they poll
for client offers. The broker saves this information along with
snowflake ids and outputs it on the /debug page.
2019-11-28 13:52:58 -05:00
Arlo Breault
7092b2cb2c Revert abstracting copyloop 2019-11-21 19:33:39 -05:00
Arlo Breault
30b5ef8a9e Use gorilla websocket in proxy-go too
Trac: 32465
2019-11-20 19:33:28 -05:00
Cecylia Bocovich
7557e96a8d Remove unnecessary logging at broker 2019-11-13 15:01:03 -05:00
Cecylia Bocovich
742070a7fb Clean up proxy-go tests 2019-11-13 14:31:55 -05:00
Cecylia Bocovich
459286c143 Test proxy-go interactions with broker 2019-11-13 13:57:17 -05:00
Cecylia Bocovich
446f39a9e5 Use http.RoundTripper for connections to broker
This change makes it easier for us to write tests with mock transports
2019-11-13 13:57:14 -05:00
Cecylia Bocovich
574c57cc98 Created tests for proxy-go utility functions 2019-11-13 13:57:11 -05:00
Cecylia Bocovich
32bec89a84 Add tests for session descripion functions
Also removed some unnecessary code
2019-11-13 13:57:06 -05:00
Cecylia Bocovich
3ec2e8b89e Renamed existing test file 2019-11-13 13:57:02 -05:00
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