Cecylia Bocovich
5c5eb2c339
Modify EventOnProxyStats to include summary data
2023-10-30 12:42:45 -04:00
Cecylia Bocovich
018bbd6d65
Proxy stats log only what occurred that time interval
...
Modify the periodic stats output by standalone snowflake proxies to only
include the data transferred during the time interval being logged. This
is an improvement of previous behaviour that logged the total data
transferred by all proxy connections that were closed within the time
interval being logged..
Closes #40302 :
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40302
2023-10-30 12:42:45 -04:00
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
83a7422fe6
Zero bytesSyncLogger stats after reading them
...
This also makes the call to GetStat() more thread safe.
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
WofWca
a615e8b1ab
fix(proxy): remove _potential_ deadlock
...
The `dc.Send()` should increase the `bufferedAmount` value,
so there is no need to add the message length a second time.
Also replace GT with GE, for the case where
`BufferedAmountLowThreshold === maxBufferedAmount`
Currently the deadlock cannot happen because `maxBufferedAmount`
and `BufferedAmountLowThreshold` are too far apart, in fact
the former is 2x the latter.
See
- https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/144#note_2902956
- https://github.com/pion/webrtc/pull/2473
- https://github.com/pion/webrtc/pull/2474
2023-10-09 15:15:45 +01:00
Cecylia Bocovich
3a050c6bb3
Use ShouldBeNil to check for nil values
2023-09-20 12:34:51 -04: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
am3o
d932cb2744
feat: add option to expose the stats by using metrics
2023-07-28 14:23:22 +01: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
WofWca
5cc849e186
fix: up/down traffic stats being mixed up
2023-02-09 11:45:09 -08: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
Flo418
cbc50592d8
update README.md help output, fix #40232
2022-12-02 13:37:17 -08:00
Flo418
cebe4a0af6
enhance help for capacity flag, fix #40208
2022-12-02 13:37:17 -08:00
Cecylia Bocovich
b547d449cb
Refactor timeout loop to use a context and reuse timers
2022-11-28 17:30:05 -05:00
Cecylia Bocovich
b010de5abb
Terminate timeoutLoop when conn is closed
2022-11-28 17:11:20 -05:00
Cecylia Bocovich
5c23fcf14a
Add timeout for webRTCConn
2022-11-28 17:11:18 -05:00
Cecylia Bocovich
6007d5e08e
Refactor creation of webRTCConn in proxy
2022-11-28 17:10:49 -05:00
Shelikhoo
4ebd85e5d1
add version output to log
2022-11-23 12:29:55 +00:00
Shelikhoo
33248f3dec
Add Version Output Support to Snowflake
...
From now on, there will be a file at common/version/version.go that includes current version number.
2022-11-23 12:29:51 +00:00
luciole
2c599f8827
change bandwidth type from int to int64 to prevent overflow
2022-11-21 10:33:21 -05:00
itchyonion
9d72b30603
proxy: Let verbose level act on file logging
2022-11-16 10:08:11 -08:00
itchyonion
768b80dbdf
Use event logger for proxy starting message and NAT info
2022-11-16 10:08:10 -08:00
luciole
3185487aea
update formatTraffic so that bandwidth unit is always KB
2022-11-10 15:12:46 +01:00
KokaKiwi
21d7449851
proxy: Check ephemeral port range ordering at flag parsing
2022-10-14 21:40:07 +02:00
KokaKiwi
10c8173120
proxy: Fix ephemeral ports range CLI flag (again)
2022-10-12 19:48:24 +02:00
Cecylia Bocovich
31b958302e
Bump minimum go version to 1.15
2022-10-12 11:03:06 -04:00
KokaKiwi
986fc8269a
proxy: Correctly handle argument parsing error
2022-10-12 16:51:39 +02:00
KokaKiwi
c5b291b114
proxy: Fix build with golang 1.13
2022-10-12 16:33:09 +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
068af08703
Change how ephemeral-ports-range CLI flag is handled
2022-09-30 17:55:10 +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
Daniel Golle
a8829d49b7
Fix proxy command line help output
2022-09-26 10:37:29 -04:00
Shelikhoo
97dea533da
Update Relay Pattern format to include dollar sign
2022-06-16 14:06:58 +01:00
Shelikhoo
ddf72025d1
Restrict Allowed Relay to Tor Pool by default
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