- 24 Apr, 2020 6 commits
-
-
David Fifield authored
https://bugs.torproject.org/33984 OnICEGatheringStateChange is no longer called when candidate gathering is complete. SetLocalDescription kicks off the gathering process. https://bugs.torproject.org/28942#comment:28 https://bugs.torproject.org/33157#comment:2
-
David Fifield authored
-
David Fifield authored
Provide NewBytesSyncLogger that returns an opaque data structure. Automatically start up the logging loop goroutine in NewBytesSyncLogger.
-
David Fifield authored
-
David Fifield authored
You would have been able to do, for example, snowflake.(*WebRTCPeer).AddInbound(...).
-
David Fifield authored
-
- 23 Apr, 2020 7 commits
-
-
David Fifield authored
-
David Fifield authored
This allows multiple SOCKS connections to share the available proxies, and in particular prevents a SOCKS connection from being starved of a proxy when the maximum proxy capacity is less then the number of the number of SOCKS connections. This is option 4 from https://bugs.torproject.org/33519.
-
David Fifield authored
The difficulty here is that the whole point of turbotunnel sessions is that they are not necessarily tied to a single WebSocket connection, nor even a single client IP address. We use a heuristic: whenever a WebSocket connection starts that has a new ClientID, we store a mapping from that ClientID to the IP address attached to the WebSocket connection in a lookup table. Later, when enough packets have arrived to establish a turbotunnel session, we recover the ClientID associated with the session (which kcp-go has stored in the RemoteAddr field), and look it up in the table to get an IP address. We introduce a new data type, clientIDMap, to store the clientID-to-IP mapping during the short time between when a WebSocket connection starts and handleSession receives a fully fledged KCP session.
-
David Fifield authored
The client opts into turbotunnel mode by sending a magic token at the beginning of each WebSocket connection (before sending even the ClientID). The token is just a random byte string I generated. The server peeks at the token and, if it matches, uses turbotunnel mode. Otherwise, it unreads the token and continues in the old one-session-per-WebSocket mode.
-
David Fifield authored
Copied and slightly modified from https://gitweb.torproject.org/pluggable-transports/meek.git/log/?h=turbotunnel&id=7eb94209f857fc71c2155907b0462cc587fc76cc https://github.com/net4people/bbs/issues/21 RedialPacketConn is adapted from clientPacketConn in https://dip.torproject.org/dcf/obfs4/blob/c64a61c6da3bf1c2f98221bb1e1af8a358f22b87/obfs4proxy/turbotunnel_client.go https://github.com/net4people/bbs/issues/14#issuecomment-544747519
-
David Fifield authored
Formerly we waiting until *both* directions finished. What this meant in practice is that when the remote connection ended, copyLoop would become useless but would continue blocking its caller until something else finally closed the socks connection.
-
David Fifield authored
-
- 22 Apr, 2020 4 commits
-
-
Cecylia Bocovich authored
-
Cecylia Bocovich authored
Now that the web proxies are in a different repository, no need to distinguish the two.
-
Cecylia Bocovich authored
-
Cecylia Bocovich authored
-
- 16 Apr, 2020 2 commits
-
-
Cecylia Bocovich authored
We're moving all web proxy code to a different repsitory.
-
Cecylia Bocovich authored
We're moving all web proxy code to another repository.
-
- 03 Apr, 2020 1 commit
-
-
- 02 Apr, 2020 1 commit
-
-
David Fifield authored
-
- 01 Apr, 2020 1 commit
-
-
Cecylia Bocovich authored
This will prevent a bug where tor skips bandwidth events for local addresses (see https://bugs.torproject.org/33693)
-
- 26 Mar, 2020 2 commits
-
-
Arlo Breault authored
Trac: 19026
-
Arlo Breault authored
Trac: 19026
-
- 25 Mar, 2020 2 commits
-
-
-
Arlo Breault authored
-
- 19 Mar, 2020 1 commit
-
-
Cecylia Bocovich authored
-
- 18 Mar, 2020 1 commit
-
-
Arlo Breault authored
-
- 17 Mar, 2020 2 commits
-
-
Cecylia Bocovich authored
-
Cecylia Bocovich authored
This existed solely for testing purposes and is no longer being maintained.
-
- 05 Mar, 2020 2 commits
-
-
Cecylia Bocovich authored
We no longer need standalone get commands now that we are using go modules.
-
Cecylia Bocovich authored
-
- 04 Mar, 2020 1 commit
-
-
Cecylia Bocovich authored
-
- 01 Mar, 2020 1 commit
-
-
- 25 Feb, 2020 1 commit
-
-
Cecylia Bocovich authored
Ever since we started scrubbing log messages, with the help of regexes for https://bugs.torproject.org/21304 logging has become more CPU intensive due to our use of regular expressions. Logging the byte count of every incoming and outgoing message at the proxy-go instances was taking up a lot of CPU and contrubuting to the high CPU usage seen in https://bugs.torproject.org/33211.
-
- 24 Feb, 2020 1 commit
-
-
David Fifield authored
https://cloud.google.com/appengine/docs/standard/go111/go-differences This is untested, because I wasn't actually able to deploy without enabling Cloud Build and setting up a billing account.
-
- 22 Feb, 2020 1 commit
-
-
David Fifield authored
Some proxies currently send ?client_ip=0.0.0.0 because of an error in how they attempt to grep the address from the client's SDP. That's inflating our "%d/%d connections had client_ip" logs. Instead, treat these cases as if the IP address were absent. https://bugs.torproject.org/33157 https://bugs.torproject.org/33385
-
- 18 Feb, 2020 1 commit
-
-
David Fifield authored
Unless something externally called Write after Close, the writeLoop(ws, pr2) goroutine would run forever, because nothing would ever close pw2/pr2. https://bugs.torproject.org/33367#comment:4
-
- 08 Feb, 2020 2 commits
-
-
Arlo Breault authored
-
Arlo Breault authored
Instead of string manipulation.
-