Shelikhoo
91379a42f3
Add Raw Data Output for bytesLogger
2022-01-25 13:03:14 +00:00
Shelikhoo
0c62d806a4
Represent NATTypeMeasurementInterval in time.Duration
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2761566
2021-11-16 19:25:27 +00:00
Shelikhoo
c49f72eb0c
Update nat-retest-interval type to duration
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2761438
2021-11-16 15:58:57 +00:00
Shelikhoo
efdb850d2e
Update nat-retest-interval flag name to reflect the change
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2761382
2021-11-16 11:22:44 +00:00
Shelikhoo
9bdb87eaf3
Update nat-retest-seconds format to time.ParseDuration form
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2761382
2021-11-16 11:20:27 +00:00
Shelikhoo
1b79962ca8
Rename flag to nat-retest-seconds and retest daily by default
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2759816
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2760512
2021-11-12 10:49:32 +00:00
Shelikhoo
59af9927a5
Refactor state transfer logic to simplify it
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2760514
2021-11-12 10:49:32 +00:00
Shelikhoo
2547883cf9
Extract function getCurrentNATType()
...
Adopted the change in according to the recommendation from
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/62#note_2759900
2021-11-12 10:49:32 +00:00
Shelikhoo
a6a53ff8ce
Add NAT Type test periodic task
2021-11-12 10:49:30 +00:00
Shelikhoo
ac97ce7136
Add NAT Type measurement command line flag
...
It is important to include unit in flag name to prevent user from making mistake.
2021-11-12 10:48:15 +00:00
Shelikhoo
04bc471a63
Support recurring NAT Type measurement
...
currentNATType will from now on be guarded by currentNATTypeAccess for any access.
NAT Type update rule is flattened into state transfer lookup table to assist reading.
2021-11-12 10:48:14 +00:00
Cecylia Bocovich
ead5a960d7
Bump snowflake library imports and go.mod to v2
2021-11-11 10:14:49 -05:00
Cecylia Bocovich
0a2598a1e8
Export ability to change the URL of NAT probe
2021-10-28 10:05:01 -04:00
Cecylia Bocovich
3caa83d84d
Modify handling of misconfigurations and defaults
2021-10-28 10:05:01 -04:00
Cecylia Bocovich
0e8d41ba4b
Update comments for exported items
2021-10-28 10:05:01 -04:00
Cecylia Bocovich
84e8a183e5
Comment package and minor changes exports
2021-10-26 15:49:46 -04:00
Cecylia Bocovich
b2edf948e2
Remove BytesLoggers from exported functions
2021-10-26 14:52:17 -04:00
idk
50e4f4fd61
Turn the proxy code into a library
...
Allow other go programs to easily import the snowflake proxy library and
start/stop a snowflake proxy.
2021-10-26 14:15:44 -04:00
Cecylia Bocovich
54ab79384f
Unify broker/bridge domains to torproject.net
2021-10-14 11:14:22 -04:00
meskio
cbd863d6b1
Fix proxy test
...
The broker is a global object.
2021-09-02 12:49:00 +02:00
meskio
e3d376ca43
Wait pollInterval between proxy offers
...
Closes : #40055
2021-07-21 16:38:29 +02:00
meskio
099f4127ea
Refactor the poll offer to use a ticker
...
Simplify the code to use a ticker. Using a pattern to allow a first run
of the loop before hitting the ticker:
https://github.com/golang/go/issues/17601#issuecomment-311955879
2021-07-21 16:38:27 +02:00
Cecylia Bocovich
c1b0fdd8cf
Cleaned up and reorganized READMEs
2021-07-19 10:16:26 -04:00
meskio
ced539f234
Refactor webRTCConn to its own file
2021-07-07 19:36:24 +02:00
meskio
7a1857c42f
Make the proxy to report the number of clients to the broker
...
So the assignment of proxies is based on the load. The number of clients
is ronded down to 8. Existing proxies that doesn't report the number
of clients will be distributed equaly to new proxies until they get 8
clients, that is okish as the existing proxies do have a maximum
capacity of 10.
Fixes #40048
2021-07-07 19:36:20 +02:00
Cecylia Bocovich
7187f1009e
Log a throughput summary for each connection
...
This will increase transparency for people running standalone proxies
and help us debug any potential issues with proxies behaving unreliably.
2021-02-02 11:21:16 -05:00
Cecylia Bocovich
1b29ad7de1
Bump version of pion/sdp
...
Update our dependency on pion/sdp from v2 to v3, to match pion/webrtc
v3. This requires some changes in how we parse out addresses from ice
candidates. This will ease tor browser builds of snowflake since we are
now only relying on one version of pion/sdp instead of two different
ones.
2021-01-25 10:28:17 -05:00
Cecylia Bocovich
83c01565ef
Update webrtc library to v3.0.0
...
This update required two main changes to how we use the library. First,
we had to make sure we created the datachannel on the offering peer side
before creating the offer. Second, we had to make sure we wait for the
gathering of all candidates to complete since trickle-ice is enabled by
default. See the release notes for more details:
https://github.com/pion/webrtc/wiki/Release-WebRTC@v3.0.0 .
2021-01-12 10:37:26 -05:00
Cecylia Bocovich
00f8f85f41
Use remote probe to determine proxy NAT type
...
Rather than having standalone proxies determine their NAT type by
conducting the NAT behaviour checks in RFC 5780, use the remote probe
service instead.
2020-11-20 01:13:18 -05:00
Cecylia Bocovich
61beb9d996
Revert accidentally merged code
...
Some temporary testing code for the proxy got accidentally merged into
the latest changes. This commit undoes that mistake.
2020-11-05 19:28:20 -05:00
Cecylia Bocovich
4663599382
Make probetest wait for a datachannel to open
2020-11-05 16:48:00 -05:00
Cecylia Bocovich
7a0428e3b1
Refactor proxy to reuse signaling code
...
Simplify proxy interactions with the broker signaling server and prepare
for the introduction of an additional signaling server.
2020-10-29 11:03:51 -04:00
David Fifield
912bcae24e
Don't log io.ErrClosedPipe in proxy.
...
We expect one of these at the end of just about every proxy session, as
the Conns in both directions are closed as soon as the copy loop
finishes in one direction.
Closes #40016 .
2020-10-22 23:01:45 -06:00
Cecylia Bocovich
d7aa9b8356
Extract remote address from ICE candidates
...
Parse the received ICE candidates as well as the Connection Data
field for a non-local IP address to pass to the bridge. This fixes
bug #33157 .
2020-10-05 17:02:57 -04:00
Cecylia Bocovich
d5ae7562ac
Add response header timeouts to broker transports
...
The client and proxy use the net/http default transport to make round
trip connecitons to the broker. These by default don't time out and can
wait indefinitely for the broker to respond if the broker hangs and
doesn't terminate the connection.
2020-07-30 17:54:28 -04:00
Cecylia Bocovich
8c875f0ba7
Use STUN server compatable with RFC 5780 in proxy
2020-07-09 09:55:41 -04:00
Cecylia Bocovich
046dab865f
Have broker pass client NAT type to proxy
...
This will allow browser-based proxies that are unable to determine their
NAT type to conservatively label themselves as restricted NATs if they
fail to work with clients that have restricted NATs.
2020-07-06 13:16:03 -04:00
Cecylia Bocovich
f6cf9a453b
Implement NAT discover for go standalone proxies
2020-07-06 13:16:03 -04:00
Cecylia Bocovich
5e8f9ac538
Update proxy tests to check serialization errors
2020-04-28 13:01:32 -04:00
Cecylia Bocovich
1d2df3cd71
Update calls to session description utils in proxy
2020-04-28 12:55:58 -04:00
Cecylia Bocovich
20180dcb04
Rename proxy-go/ directory to proxy/
...
Now that the web proxies are in a different repository, no need to
distinguish the two.
2020-04-22 11:11:16 -04:00
Cecylia Bocovich
51b0b7ed2e
Remove proxy/ subdirectory
...
We're moving all web proxy code to a different repsitory.
2020-04-16 10:01:18 -04:00
Cecylia Bocovich
6f89fc14f6
Remove proxy/translation submodule
...
We're moving all web proxy code to another repository.
2020-04-16 10:01:18 -04:00
Cecylia Bocovich
03315dde02
bump version to 0.2.2
2020-03-04 16:20:34 -05:00
Cecylia Bocovich
310890aa14
bump version to 0.2.1
2020-02-03 09:49:34 -05: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
07f2cd8073
bump version to 0.2.0
2019-12-03 14:09:05 -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