Commit graph

1458 commits

Author SHA1 Message Date
shelikhoo
aae444478d Merge branch 'dev-snowflake-udp-rebase-extradata' into 'main'
Draft: Unreliable+unordered WebRTC data channel transport for Snowflake rev2

See merge request tpo/anti-censorship/pluggable-transports/snowflake!315
2025-02-12 16:55:11 +00:00
WofWca
57eefd4b37
Temove outdated comment
As per https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/502#note_3159902.

The comment was added in c28c8ca489,
and got outdated apparently after
83c01565ef.

Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-02-12 11:50:29 -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
Renovate Bot
cb30331aa2
chore(deps): update gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil digest to efaf4e0
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-02-12 10:07:00 -05:00
Renovate Bot
5d97990096
chore(deps): update module github.com/aws/aws-sdk-go-v2/config to v1.29.6
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-02-12 10:06:02 -05:00
Renovate Bot
d8838d1727
chore(deps): update module github.com/pion/ice/v4 to v4.0.6
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-02-12 10:03:22 -05:00
Renovate Bot
971d88ca9d
chore(deps): update module golang.org/x/net to v0.35.0 2025-02-11 11:22:39 +00:00
Shelikhoo
33d00aea24
update golang testing setting in CI 2025-02-10 12:54:43 +00:00
Renovate Bot
2c2839fc7a
chore(deps): update module github.com/aws/aws-sdk-go-v2/credentials to v1.17.59 2025-02-06 13:51:27 +00:00
Renovate Bot
905002d146
chore(deps): update module github.com/aws/aws-sdk-go-v2/service/sqs to v1.37.14 2025-02-06 12:42:01 +00: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
meskio
35bc8ec7c3
Merge remote-tracking branches 'gitlab/mr/486' and 'gitlab/mr/487' 2025-02-04 18:56:11 +01:00
Shelikhoo
182fb83d98
reject message with 2047 bytes to reserve higher bits 2025-02-04 11:19:44 +00:00
Renovate Bot
a390085d2a chore(deps): update module github.com/aws/aws-sdk-go-v2/config to v1.29.4 2025-01-31 20:12:47 +00:00
Renovate Bot
276bce42b5 chore(deps): update module github.com/miekg/dns to v1.1.63 2025-01-30 15:46:29 +00:00
Shelikhoo
94eddc6391
refactor message boundary constrains: coding style 2025-01-30 13:37:22 +00:00
Shelikhoo
1ba58c864d
refactor message boundary constrains 2025-01-30 13:35:36 +00:00
onyinyang
26f7ee4b06
Remove utls library from snowflake and Use ptuil/utls 2025-01-29 13:01:33 -05:00
Shelikhoo
33b3891648
use cbor instead of json to avoid double base64 2025-01-29 13:33:18 +00:00
Shelikhoo
6e0bc74fb8
add comment for ClientConnectionMetadata 2025-01-29 13:07:50 +00:00
Shelikhoo
51eb36051c
fix coding style issue in common/message 2025-01-29 12:25:57 +00:00
Shelikhoo
5daf971ea1
update golang testing setting in CI 2025-01-29 11:54:04 +00:00
Shelikhoo
0aa1470e01
add connection padding on server side 2025-01-29 11:46:33 +00:00
Shelikhoo
53172a588b
add paddable connection 2025-01-29 11:29:52 +00:00
Shelikhoo
9e45772177
rename to common/packetpadding 2025-01-29 11:22:30 +00:00
Shelikhoo
fbcb9bc863
Add packet padding container for packet length shaping: refactor arg names 2025-01-29 10:59:45 +00:00
Shelikhoo
1689279e95
Add packet padding container for packet length shaping: refactor 2025-01-29 10:59:44 +00:00
Shelikhoo
9e1cc35878
Add packet padding container for packet length shaping 2025-01-29 10:59:41 +00:00
Renovate Bot
0dee9d68bd
chore(deps): update module github.com/aws/aws-sdk-go-v2/service/sqs to v1.37.9
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-01-22 14:37:19 -05:00
Renovate Bot
d710216fb7
chore(deps): update module github.com/aws/aws-sdk-go-v2/config to v1.29.1
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2025-01-22 14:33:45 -05:00
meskio
313e54befe
CI: use /etc/localtime instead of /etc/timezone
/etc/timezone is a legacy debian specific file. Let's use localtime.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1038849

* Related: #40414
2025-01-22 17:38:49 +01:00
David Fifield
c1ac2aa577 Update comment not to refer to a Stream transport.
Stream is not part of this branch.
2025-01-21 20:55:26 +04:00
Shelikhoo
0d3b5f02b0 update comment for protocol in proxy/webRTCConn 2025-01-21 20:55:26 +04:00
Shelikhoo
de9fede4ac update comment for newSession in client 2025-01-21 20:55:26 +04:00
Shelikhoo
00da3c95ed use protocol field encoder 2025-01-21 20:55:26 +04:00
Shelikhoo
fb57ad79f5 add protocol field encoder 2025-01-21 20:55:26 +04:00
Shelikhoo
b2605b7961 add protocol setting to newWebRTCConn 2025-01-21 20:55:26 +04:00
Shelikhoo
80262c9e4f set protocol query for connection with server unconditionally 2025-01-21 20:55:26 +04:00
Shelikhoo
11442c8857 Remove WebRTCPeer constructor without client ID 2025-01-21 20:55:26 +04:00
Shelikhoo
c322e8b7f5 always let WebRTCDialer constructor decide the clientID 2025-01-21 20:55:26 +04:00
Shelikhoo
c7b163de57 Remove clientID from unused branch 2025-01-21 20:55:26 +04:00
Shelikhoo
1da7fecbed fix rwcrb close 2025-01-21 20:55:26 +04:00
Shelikhoo
37f2f42ea0 revert change on SetStreamMode 2025-01-21 20:55:26 +04:00
Shelikhoo
69045b5fbb update comment on conn.SetStreamMode 2025-01-21 20:55:26 +04:00
Shelikhoo
3a2b2fc969 add confirmation to ReadWriteCloser should preserve message boundary 2025-01-21 20:55:26 +04:00
Shelikhoo
0d9bef7794 use a propagate close for PacketConnWrapper 2025-01-21 20:55:26 +04:00
Shelikhoo
f10dc3d619 use a constructor for PacketConnWrapper 2025-01-21 20:55:26 +04:00
Shelikhoo
85b716bb40 return an error for unimplemented packetConnWrapper feature 2025-01-21 20:55:26 +04:00
David Fifield
2e4139ea97 Remove turbotunnelMode.
Replace it with turboTunnelUDPLikeMode, copying comments etc. to make
the changes easier to see.
2025-01-21 20:55:26 +04:00
David Fifield
490502691d Remove WebRTCPeer.activeTransportMode.
Make "u" mode the assumed default. The WebRTC data channel protocol
contains just the hex clientID.
2025-01-21 20:55:25 +04:00