Commit graph

1211 commits

Author SHA1 Message Date
meskio
440f7b791e
Merge remote-tracking branch 'gitlab/mr/207' 2023-11-13 10:27:51 +01:00
Renovate Bot
8b1a48af8b chore(deps): update module golang.org/x/net to v0.18.0 2023-11-08 20:43:13 +00:00
David Fifield
d99f31d881 Have encapsulation.ReadData return an error when the buffer is short.
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/154#note_2919109

Still ignoring the io.ErrShortBuffer at the callers, which retains
current behavior.
2023-11-07 05:51:35 +00:00
David Fifield
001f691b47 Have encapsulation.ReadData read into a provided buffer.
Instead of unconditionally allocating its own.
2023-11-07 05:51:35 +00:00
Renovate Bot
c1715e0928 chore(deps): update module github.com/gorilla/websocket to v1.5.1 2023-11-05 03:39:42 +00:00
Cecylia Bocovich
648609dbea
Refactor disabling the stats logger
Have Snowflake proxy periodically collect throughput stats even if the
stats logger is disabled so that it can be handled by the prometheus
metrics.
2023-10-31 13:15:52 -04:00
Cecylia Bocovich
22d9381d9d
Update prometheus metrics to use new EventOnProxyStats 2023-10-31 13:11:38 -04:00
Cecylia Bocovich
caa2b36463
Process and properly log connection closure stats 2023-10-31 10:02:31 -04:00
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
Cecylia Bocovich
10fb9afaa7
Check if multiple front domains argument is empty
This fixes a regression introduced in 9fdfb3d1, where the list of front
domains always contained an empty string if none were supplied via the
commandline options, causing rendezvous failures for both amp cache and
domain fronting. This fix checks to see whether the commandline option
was supplied.
2023-10-26 17:04:56 -04:00
meskio
778e3af09a
Merge remote-tracking branch 'gitlab/mr/187' 2023-10-26 18:47:01 +02:00
Renovate Bot
4fa43a8892
chore(deps): update module github.com/prometheus/client_golang to v1.17.0 2023-10-25 16:49:19 +01:00
Renovate Bot
2617d2341a
chore(deps): update module github.com/refraction-networking/utls to v1.5.4 2023-10-25 15:53:48 +01:00
Shelikhoo
5df7a06eee
Add outbound proxy configuration propagation 2023-10-24 17:47:25 +01:00
Shelikhoo
f43da1d2d2
Add transport wrapper 2023-10-24 17:43:32 +01:00
Shelikhoo
8b46e60553
Add common proxy utilities 2023-10-24 17:42:46 +01:00
meskio
6b0421db0d
Merge remote-tracking branch 'gitlab/mr/195' 2023-10-24 12:50:27 +02:00
Renovate Bot
fc7053acd5 chore(deps): update module github.com/prometheus/client_model to v0.5.0 2023-10-23 13:10:46 +00:00
Renovate Bot
ef6f8dd500
chore(deps): update module golang.org/x/net to v0.17.0 [security] 2023-10-23 14:00:09 +01:00
Renovate Bot
251a151bf5 chore(deps): update module github.com/xtaci/kcp-go/v5 to v5.6.5 2023-10-20 15:40:01 +00:00
meskio
b11a41482c
Use go 1.21 in renovate 2023-10-16 20:48:47 +02:00
Shelikhoo
bd7391d678
update version to 2.7.0 2023-10-16 15:14:51 +01:00
KokaKiwi
7142fa3ddb
fix(proxy): Correctly close connection pipe when dealing with error 2023-10-12 15:52:43 +01:00
David Fifield
6393af6bab
Remove proxy churn measurements from broker.
We've done the analysis we planned to do on these measurements.

A program to analyze the proxy churn and extract hour-by-hour
intersections is available at:
https://github.com/turfed/snowflake-paper/tree/main/figures/proxy-churn

Closes #40280.
2023-10-09 16:16:05 +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
d434549df8
Maintain backward compatability with old clients
Introduce a new commandline and SOCKS argument for comma-separated
domain fronts rather than repurposing the old one so that we can
maintain backwards compatability with users running old versions of the
client. A new bridge line shared on circumvention settings could have
both the front= and fronts= options set.
2023-10-05 17:51:56 -04:00
Cecylia Bocovich
9fdfb3d1b5
Randomly select front domain from comma-separated list
This commmit changes the command-line and Bridge line arguments to take
a comma-separated list of front domains. The change is backwards
compatible with old Bridge and ClientTransportPlugin lines. At
rendezvous time, a front domain will be randomly chosen from the list.
2023-10-05 17:51:56 -04:00
WofWca
4ff36e3f07 improvement(broker): don't reject unrestricted client if there are no restricted proxies
I.e. match it with an unrestricted proxy (if there is one).

The old behavior exists since the inception of the restricted vs
unrestricted feature, i.e. 0052c0e10c
2023-10-02 21:39:56 +04:00
Shelikhoo
5cdf52c813
Update dependencies 2023-09-27 13:15:50 +01:00
Renovate Bot
1559963f75
chore(deps): update module github.com/xtaci/kcp-go/v5 to v5.6.3 2023-09-25 15:21:28 +01:00
Shelikhoo
60e66beadc
Remove Golang 1.20 from CI Testing 2023-09-25 14:27:23 +01:00
Shelikhoo
1d069ca71d
Update CI targets to test android from golang 1.21 2023-09-20 20:05:28 +01:00
Cecylia Bocovich
3a050c6bb3
Use ShouldBeNil to check for nil values 2023-09-20 12:34:51 -04:00
Renovate Bot
e45e8e555b
chore(deps): update module github.com/smartystreets/goconvey to v1.8.1 2023-09-20 12:34:49 -04:00
Renovate Bot
f47ca18e64 chore(deps): update module gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib to v1.5.0 2023-09-19 16:06:59 +00:00
Renovate Bot
106da49c27 chore(deps): update module github.com/pion/webrtc/v3 to v3.2.20 2023-09-19 15:49:22 +00:00
Cecylia Bocovich
2844ac6a13
Update CI targets to include only Go 1.20 and 1.21
To keep up with our dependencies, we no longer support versions of Go
older than v1.20.
2023-09-19 11:42:31 -04:00
Renovate Bot
f4e1ab90c8 chore(deps): update module golang.org/x/net to v0.15.0 2023-09-19 14:09:33 +00:00
Renovate Bot
caaff7004e Update module golang.org/x/sys to v0.12.0 2023-09-12 15:44:11 +00:00
Shelikhoo
b5d702f483
update version to v2.6.1 2023-09-11 14:30:00 +01:00
Renovate Bot
a3bfc2802a
Update module golang.org/x/crypto to v0.12.0 2023-08-28 16:37:52 +01:00
Renovate Bot
e37e15ab7c
Update golang Docker tag to v1.21 2023-08-25 17:21:48 +01:00
Cecylia Bocovich
b632c7d49c
Workaround for shadow in lieu of AF_NETLINK support
For details, see https://github.com/shadow/shadow/issues/2980
2023-08-24 16:33:22 +01:00
Renovate Bot
0cb2975fd8
Update module golang.org/x/net to v0.13.0 [SECURITY] 2023-08-24 13:56:29 +01:00
meskio
f73fe6ec00
Keep the 'v' from the tag on the released .tar.gz
Gitlab doesn't support '#v' expansion for the links name and url:
https://docs.gitlab.com/ee/ci/variables/where_variables_can_be_used.html
https://docs.gitlab.com/ee/ci/variables/where_variables_can_be_used.html#gitlab-internal-variable-expansion-mechanism

The current releases include a 'snowflake-.tar.gz' that gives a 404,
because the link provided is missing the tag part. Let's keep it
simple and produce a tar.gz with the v in the name like
snowflake-v2.6.0.tar.gz

Closes: #40282
2023-08-14 08:56:56 +02: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