Cecylia Bocovich
63613cc50a
Fix minor data race in Snowflake broker metrics
2025-02-20 09:39:11 -05:00
WofWca
cb0fb02cd5
fix(proxy): not answering before client timeout
...
This is related to
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40230 .
The initial MR that closed that issue,
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/391 ,
was not semantically correct, because `DataChannelTimeout`
starts after the client has already received the answer.
After
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/498#note_3156256
the code became not only semantically incorrect,
but also functionally incorrect because now if this timeout is hit
by the proxy, the client is guaranteed to be gone already.
This commit fixes it, by lowering the timeout.
This addresses a suggestion in
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40447 .
This also closes
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40381
and supersedes
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/415 .
2025-02-12 10:17:08 -05:00
Cecylia Bocovich
4a1e075ee0
Lower broker ClientTimeout to 5 seconds
...
Matches the observed timeout for CDN77, based on user reports.
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40446
2025-02-04 15:41:35 -05:00
WofWca
ec9476e5ab
Better error msg on bad fingerprint
2024-09-04 10:47:08 -04:00
Michael Pu
b512e242e8
Implement better client IP per rendezvous method tracking for clients
...
Implement better client IP per rendezvous method tracking for clients
Add tests for added code, fix existing tests
chore(deps): update module github.com/miekg/dns to v1.1.58
Implement better client IP tracking for http and ampcache
Add tests for added code, fix existing tests
Implement GetCandidateAddrs from SDP
Add getting client IP for SQS
Bug fixes
Bug fix for tests
2024-03-09 13:36:25 -05:00
Anthony Chang
dbecefa7d2
Move RendezvousMethod field to messages.Arg
2024-01-31 14:34:29 -05:00
Michael Pu
26ceb6e20d
Add metrics for tracking rendezvous method
...
Update tests for metrics
Add rendezvous_method to Prometheus metrics
Update broker spec docs with rendezvous method metrics
Bug fix
2024-01-31 14:34:29 -05:00
meskio
778e3af09a
Merge remote-tracking branch 'gitlab/mr/187'
2023-10-26 18:47:01 +02: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
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
meskio
82cc0f38f7
Move the development to gitlab
...
Related: tpo/anti-censorship/team#86
2023-05-31 10:01:47 +02:00
itchyonion
88608ad44a
Broker: add warning log when proxy couldn't mach with client
2023-05-29 10:12:48 -07:00
itchyonion
255cee69ed
Broker: soften non-critical log from error to warning
2023-05-29 10:12:48 -07:00
Shelikhoo
36f03dfd44
Record proxy type for proxy relay stats
2022-09-23 13:08:13 +01:00
itchyonion
03b2b56f87
Fix broker race condition
2022-07-19 18:25:27 -07:00
Shelikhoo
2541b13166
Add distinct IP counter to broker
2022-06-16 15:00:10 +01:00
Shelikhoo
f789dce6d2
Represent Bridge Fingerprint As String
2022-06-16 14:06:58 +01:00
Shelikhoo
dd61e2be0f
Add Proxy Relay URL Metrics Collection
2022-06-16 14:06:57 +01:00
Shelikhoo
6e8fbe54ee
Rejection reason feedback
2022-06-16 14:06:57 +01:00
Shelikhoo
b18a9431b2
Add Broker Allowed Relay Pattern Indication Rejection for Proxy
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
c7549d886e
Update default snowflake server address
...
Change snowflake broker test for updated address
Amend DefaultBridges Value
Add Default Fingerprint Info for Snowflake
2022-06-16 14:06:56 +01:00
Shelikhoo
5d7a3766d6
Add Relay Info Forwarding for Snowflake
2022-06-16 13:57:34 +01:00
Arlo Breault
2f89fbc2ed
Represent fingerprint internally as byte array
2022-03-31 11:28:00 -04:00
Arlo Breault
b563141c6a
Forward bridge fingerprint
...
gitlab 28651
2022-03-21 15:06:05 -04:00
Arlo Breault
281d917beb
Stop storing version in ClientPollRequest
...
This continues to asserts the known version while decoding. The client
will only ever generate the latest version while encoding and if the
response needs to change, the impetus will be a new feature, set in the
deserialized request, which can be used as a distinguisher.
2022-03-21 15:06:05 -04:00
meskio
b265bd3092
Make easier to extend the list of known proxy types
...
And include iptproxy as a valid proxy type.
2022-03-21 19:23:49 +01:00
Arlo Breault
829cacac5f
Parse ClientPollRequest version in DecodeClientPollRequest
...
Instead of IPC.ClientOffers. This makes things consistent with
EncodeClientPollRequest which adds the version while serializing.
2022-03-16 15:43:10 -04:00
Arlo Breault
6fd0f1ae5d
Rename *PollRequest methods to distinguish client/proxy
2022-03-16 15:43:10 -04:00
Cecylia Bocovich
ead5a960d7
Bump snowflake library imports and go.mod to v2
2021-11-11 10:14:49 -05:00
Arlo Breault
c3c84fdb48
Use variables for string matching
...
The legacy code does case matching on these exact strings so it's better
to ensure they're constant.
2021-07-08 12:47:23 -04:00
Arlo Breault
87ad06a5e2
Get rid of legacy version
...
Move the logic for the legacy version into the http handlers and use a
shim when doing ipc.
2021-07-08 12:32:37 -04:00
Arlo Breault
015958fbe6
Intermediary refactor teasing apart http / ipc
...
Introduces an IPC struct and moves the logic out of the http handlers
and into methods on that.
2021-07-08 12:32:35 -04:00