Shelikhoo
1ba58c864d
refactor message boundary constrains
2025-01-30 13:35:36 +00:00
Shelikhoo
0aa1470e01
add connection padding on server side
2025-01-29 11:46:33 +00: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
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
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
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
David Fifield
568a0999d2
connectionID → clientID.
2025-01-21 20:55:25 +04:00
Shelikhoo
a601c2b1fa
fix coding style issue
2025-01-21 20:55:25 +04:00
Shelikhoo
f521b180f5
add connwrapper
2025-01-21 20:55:25 +04:00
Shelikhoo
ecfd0f3f76
delete expired connection wrapper
2025-01-21 20:55:25 +04:00
Shelikhoo
c0acdd7d2a
fix pass client id to webrtc dialer
2025-01-21 20:55:25 +04:00
Shelikhoo
bf165264b1
add client side support for extra data based client id
2025-01-21 20:55:25 +04:00
Shelikhoo
ad5edd3f01
add kcp setting adjustment SNOWFLAKE_TEST_KCP_FAST3MODE
2025-01-21 20:55:25 +04:00
Shelikhoo
457c4fbf15
Add UDP Like transport mode to snowflake
2025-01-21 20:55:25 +04:00
David Fifield
1895bb9d2c
Comment typo.
2025-01-13 08:49:15 +00:00
David Fifield
dbad475254
Finish incomplete comment for newEncapsulationPacketConn.
2024-12-12 06:40:57 +00:00
WofWca
94b6647d33
feat(client): try restricted proxy if NAT unknown
...
Just once, to offload unrestricted proxies.
This is useful when our STUN servers are blocked or don't support
the NAT discovery feature, or if they're just slow.
Closes https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40178 .
Partially addresses https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40376
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2024-12-05 10:34:08 -05:00
WofWca
f6767061e4
refactor: separate some Negotiate
logic
...
As per https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/392#note_3096760
in preparation for further changes to `Negotiate`.
2024-12-05 10:27:36 -05:00
WofWca
ae5bd52821
improvement: use SetIPFilter
for local addrs
...
Closes https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40271 .
Supersedes https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/417 .
This simplifies the code and (probably) removes the need for
`StripLocalAddresses`, although makes us more dependent on Pion.
Signed-off-by: Cecylia Bocovich <cohosh@torproject.org>
2024-11-28 10:56:40 -05:00
Shelikhoo
239357509f
update snowflake to use pion webrtc v4
2024-11-13 14:58:53 +00:00
Renovate Bot
290be512e3
chore(deps): update module github.com/pion/webrtc/v3 to v4
2024-11-11 18:45:36 +00:00
Cecylia Bocovich
0d8bd159ec
Have SnowflakeConn.Close() return errors
...
Return an error if the connection was already closed. On the first
close, return an error if any of the calls inside Close() returned an
error in this order:
- smux.Stream.Close()
- pconn.Close()
- smux.Session.Close()
2024-10-29 14:58:01 -04:00
Cecylia Bocovich
a019fdaec9
Perform SnowflakeConn.Close() logic only once
...
Use synchronization to avoid a panic if SnowflakeConn.Close is called
more than once.
2024-10-29 14:58:01 -04:00
Neel Chauhan
8792771cdc
broker and proxy must not reject client offers with no ICE candidates
...
Fixes #40371 . Partially reverts !141 .
2024-10-17 15:46:02 -04:00
WofWca
78f4b9dbc5
test(client): add test for BrokerChannel
2024-09-08 14:50:08 +04:00
David Fifield
bb2126b7c6
Use %w, not %v, in fmt.Errorf, so errors can be unwrapped.
...
https://go.dev/blog/go1.13-errors#wrapping-errors-with-w
2024-08-21 17:00:18 -04:00
David Fifield
ee5f815f60
Cosmetic changes from dev-snowflake-udp-rebase-extradata.
...
https://gitlab.torproject.org/shelikhoo/snowflake/-/tree/dev-snowflake-udp-rebase-extradata
commit 59b76dc68d2ee0383c2acd91cb0f44edc46af939
2024-08-01 22:12:56 +00:00
Michael Pu
9fe2ca58a0
Switch to sqscreds param for passing in SQS credentials
2024-03-09 13:35:16 -05:00
Michael Pu
1e1f827248
Update tests
2024-03-05 12:38:33 -05:00
Michael Pu
9cd362f42d
Move SQS client ID generation to Exchange
2024-03-05 12:38:33 -05:00
am3o
acce1f1fd9
refactor: change deprecated "io/ioutil" package to recommended "io" package
2024-02-17 12:47:22 +01:00
Anthony Chang
32e864b71d
Add unit tests for SQS rendezvous in client
...
Co-authored-by: Michael Pu <michael.pu@uwaterloo.ca>
2024-01-22 13:11:03 -05:00
Anthony Chang
f3b062ddb2
Add mocks and interfaces for testing SQS rendezvous
...
Co-authored-by: Michael Pu <michael.pu@uwaterloo.ca>
2024-01-22 13:10:56 -05:00
Michael Pu
8fb17de152
Implement SQS rendezvous in client and broker
...
This features adds an additional rendezvous method to send client offers
and receive proxy answers through the use of Amazon SQS queues.
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/26151
2024-01-22 13:06:42 -05:00
David Fifield
d0529141ac
Cosmetic fixes taken from !219 .
...
shelikhoo/dev-udp-performance-rebased branch
https://gitlab.torproject.org/shelikhoo/snowflake/-/commits/9dce28cfc2093490473432ffecd9abaab7ebdbdb
2024-01-16 18:43:58 +00:00
David Fifield
aa06e7bef3
Merge branch 'encapsulation-readdata-buffer'
2023-11-21 03:46:46 +00:00
David Fifield
234d9cb11c
Link a section in the pion/webrtc@3.0.0 release notes.
2023-11-21 01:27:09 +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
Shelikhoo
5df7a06eee
Add outbound proxy configuration propagation
2023-10-24 17:47:25 +01:00