Cecylia Bocovich
354cb65432
Move creation of periodic stats task inside proxy library
...
This adds a new type of SnowflakeEvent. EventOnProxyStats is triggered
by the periodic task run at SummaryInterval and produces an event with a
proxy stats output string.
2023-10-30 12:42:45 -04:00
Cecylia Bocovich
939062c7dd
Remove ThroughputSummary from bytesLogger
...
This was leftover from when we used to log the total throughput of
connections when they close. It should be removed for privacy reasons as
mentioned in
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40079
2023-10-30 12:42:45 -04:00
KokaKiwi
7142fa3ddb
fix(proxy): Correctly close connection pipe when dealing with error
2023-10-12 15:52:43 +01:00
David Fifield
8104732114
Change DefaultRelayURL back to wss://snowflake.torproject.net/.
...
Fixes #40283 . Compare to #31522 .
2023-07-29 22:33:26 +00:00
Vort
ea01c92cf1
Implement DataChannel flow control
2023-06-19 17:44:45 +01:00
meskio
82cc0f38f7
Move the development to gitlab
...
Related: tpo/anti-censorship/team#86
2023-05-31 10:01:47 +02:00
itchyonion
07b5f07452
Validate SDP offers and answers
2023-05-29 10:12:48 -07:00
KokaKiwi
1ef43a0dde
Use latest Pion WebRTC libs version
...
- webrtc and dtls libs got the "Skip Hello Verify" patches applied
Link: https://github.com/pion/dtls/pull/513
Link: https://github.com/pion/webrtc/pull/2433
2023-03-22 12:19:03 +00:00
itchyonion
5dd0a31d95
Add comments and improve logging
2023-03-14 12:43:00 -07:00
itchyonion
fb35e80b0a
Proxy: add outbound-address config
2023-03-14 12:42:59 -07:00
Cecylia Bocovich
f6fa51d749
Switch default proxy STUN server to stun.l.google.com
...
This is the same default that the web-based proxies use. Proxies do not
need RFC 5780 compatible STUN servers.
2022-12-31 12:23:27 -05:00
Cecylia Bocovich
6007d5e08e
Refactor creation of webRTCConn in proxy
2022-11-28 17:10:49 -05:00
luciole
2c599f8827
change bandwidth type from int to int64 to prevent overflow
2022-11-21 10:33:21 -05:00
itchyonion
768b80dbdf
Use event logger for proxy starting message and NAT info
2022-11-16 10:08:10 -08:00
KokaKiwi
10c8173120
proxy: Fix ephemeral ports range CLI flag (again)
2022-10-12 19:48:24 +02:00
meskio
56063efbba
Merge remote-tracking branch 'gitlab/mr/102'
2022-10-11 18:47:47 +02:00
trinity-1686a
5ef5142bb0
format using go-1.19
2022-10-09 21:15:50 +02:00
KokaKiwi
47f9392645
proxy: Add ICE ephemeral ports range setting CLI flag
2022-09-30 17:55:08 +02:00
KokaKiwi
5e564f36ff
proxy: Add a SnowflakeProxy.makeWebRTCAPI() method
2022-09-30 17:55:06 +02:00
Tommaso Gragnato
9ce1de4eee
Use Pion's Setting Engine to reduce Multicast DNS noise
...
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40123
The purpose of the patch is to prevent Pion from opening the mDNS port,
thus preventing snowflake from directly leaking .local candidates.
What this doesn't prevent is the resolution of .local candidates
once they are passed on to the system DNS.
2022-09-26 08:52:23 -07:00
Shelikhoo
97dea533da
Update Relay Pattern format to include dollar sign
2022-06-16 14:06:58 +01:00
Shelikhoo
3ebb5a4186
Show relay URL when connecting to relay
2022-06-16 14:06:57 +01:00
Shelikhoo
2ebdc89c42
Add Allowed Relay Hostname Pattern Indication
2022-06-16 14:06:57 +01:00
Shelikhoo
b09a2e09b3
Add Relay URL Check in Snowflake Proxy
2022-06-16 14:06:56 +01:00
Shelikhoo
c961b07459
Add Detailed Error Output for datachannelHandler
2022-06-16 14:06:56 +01:00
Shelikhoo
d5a87c3c02
Guard Proxy Relay URL Acceptance with Pattern Check
2022-06-16 13:57:33 +01:00
Shelikhoo
863a8296e8
Add RelayURL support in proxy
2022-06-16 13:57:33 +01:00
Cecylia Bocovich
6310ca4381
Avoid performing two NAT probe tests at startup
...
After the initial NAT probe test, a full interval before starting the
recurring NAT retests.
2022-05-27 10:01:19 -04:00
meskio
b73add1550
Make the proxy type configurable for users of the library
...
Closes : #40104
2022-03-21 19:24:51 +01:00
Arlo Breault
6fd0f1ae5d
Rename *PollRequest methods to distinguish client/proxy
2022-03-16 15:43:10 -04:00
Shelikhoo
f12cfe6a9f
Add proxy event logger state propagate
2022-01-25 13:03:18 +00:00
Shelikhoo
e4305a4d2b
Add EventOnProxyConnectionOver Reporting
2022-01-25 13:03:18 +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
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