Commit graph

1540 commits

Author SHA1 Message Date
Gaukas Wang
9b03bc282c
fix: uquic sync error
...so that uquic build/test shall pass and examples shall work again.
2023-08-28 16:53:19 -06:00
Gaukas Wang
856bc02b8f
Merge branch 'upstream' into sync-upstream 2023-08-28 14:12:03 -06:00
Marten Seemann
2797f85fc0
switch from unmaintained golang/mock to go.uber.org/mock (#4050) 2023-08-28 02:23:55 -07:00
Marten Seemann
ced65c0ddc
wire: always set the QUIC bit for Version Negotiation packets (#3991)
* wire: always set the QUIC bit for Version Negotiation packets

* Update internal/wire/version_negotiation_test.go
2023-08-20 19:55:57 -07:00
Marten Seemann
fe3c4f271d
add a method to retrieve non-QUIC packets from the Transport (#3992) 2023-08-19 01:19:17 -07:00
Ameagari
6880f88089
save the max_datagram_frame_size transport parameter in the session ticket (#4013)
* Add MaxDatagramFrameSize parameter in session ticket

* fix gofumpt issues

* Update integrationtests/self/zero_rtt_test.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* fix: correct comparsion of max_datagram_frame_size

* test: use constant MaxDatagramFrameSize for session ticket test

* fix grammar

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-08-18 19:16:16 -07:00
Marten Seemann
443c6148b6
protocol: add string representation for ECN values (#4008) 2023-08-18 17:17:37 -07:00
Marten Seemann
501cc21c4b
expose crypto/tls errors on the TransportError (#4015) 2023-08-18 03:01:49 -07:00
Marten Seemann
bda01bc489
handshake: use the correct hash function for TLS_AES_256_GCM_SHA384 (#4031) 2023-08-15 20:09:01 -07:00
Marten Seemann
1d848392bc
ignore QUICConn.SendSessionTicket error if session tickets are disabled (#4030) 2023-08-15 19:53:41 -07:00
elagergren-spideroak
571d3adef4
fix compatibility with API breaking change in Go 1.21 (#4020)
* add Go 1.21 compatibility

Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com>

* refactor for Go 1.20

Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com>

---------

Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com>
2023-08-09 05:22:30 -07:00
Marten Seemann
fba8d784a8 add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls (#4016) 2023-08-08 23:16:13 -06:00
Marten Seemann
18e4a9f516 set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate (#4014) 2023-08-08 23:16:13 -06:00
Gaukas Wang
f7b03bf6b3
deps: upgrade dependencies after Go 1.21 releases (#12) 2023-08-08 23:15:52 -06:00
Gaukas Wang
5e966a9bec
fix: CI qtls tests (#9)
Remove some unlinked qtls functionalities.
2023-08-05 17:44:40 -06:00
Marten Seemann
95ab7bdc9a
add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls (#4016) 2023-08-05 13:00:11 -07:00
Gaukas Wang
95575f5fe7
break: update repo url [ci skip]
uTLS is not yet bumped to the new version, so this commit breaks the dependencies relationship by getting rid of the local replace.
2023-08-03 18:58:52 -06:00
Marten Seemann
18d3846d4f
set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate (#4014) 2023-08-03 20:33:19 -04:00
Gaukas Wang
10eaa8489c
init: separate from quic-go tree 2023-08-03 18:18:56 -06:00
Gaukas Wang
4065c5b85e
Merge pull request #1 from gaukas/uquic-dev
new: uQUIC
2023-08-02 16:11:09 -06:00
Gaukas Wang
ea40752ca3
new: uquic 2023-08-02 15:38:16 -06:00
Gaukas Wang
a9a033da78
Merge branch 'quic-go:master' into uquic 2023-08-01 20:58:24 -06:00
Ameagari
1c47ebefc0
check transport parameters after 0-RTT resumption (#3985)
* check new transport parameters do not contain redueced limits

* redefine ValidForUpdate and add tests

* fix test assertion and update comment
2023-08-01 18:34:42 -07:00
Marten Seemann
f3a0ce1599
set a net.Conn with the correct addresses on the tls.ClientHelloInfo (#4001) 2023-07-31 13:32:10 -07:00
Gaukas Wang
20e2a487b8
wip: implement InitialSpec type (1/n)
- TransportParameters are now set as a part of ClientHelloSpecs
- Removes transportparameters package and uses tls.TransportParameters
2023-07-30 20:01:07 -06:00
Gaukas Wang
9327068651
dep: qtls now points to utls in all cases
Since uTLS essentially is a fork of the latest crypto/tls, it would work for any Go version if no compilation error.
2023-07-30 15:20:49 -06:00
Gaukas Wang
8463016cbc
impl: cleaning up some debug flag/symbol 2023-07-29 23:53:01 -06:00
Gaukas Wang
fca46117e4
impl: uquic with utls 2023-07-29 23:45:16 -06:00
Gaukas Wang
251b3afe6e
impl: QUIC Header mimicry 2023-07-29 13:17:27 -06:00
Marten Seemann
469a6153b6
use a synchronous API for the crypto setup (#3939) 2023-07-21 10:00:42 -07:00
Marten Seemann
0662afba63
stop using math/rand.Seed and Read in tests, bump go.mod version to 1.20 (#3936) 2023-07-01 11:29:41 -07:00
Marten Seemann
3d89e545d3
use the new crypto/tls QUIC Transport (#3860) 2023-07-01 11:15:00 -07:00
Glonee
435444af7e
add a context to Connection.ReceiveMessage (#3926)
* add context to ReceiveMessage

* add newlines

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-06-27 11:29:30 -07:00
Marten Seemann
21388c86bb
drop support for draft-29 (#3903) 2023-06-21 04:06:44 -07:00
Marten Seemann
28d5106a1c
wire: switch to crypto/rand for greased transport parameter generation (#3904) 2023-06-20 09:31:12 -07:00
Marten Seemann
e45c46041a ackhandler: don't allocate a packet struct for non-ack-eliciting packets 2023-06-05 21:07:05 +03:00
Marten Seemann
da55dfaabd ackhandler: unexport Packet 2023-06-05 21:06:58 +03:00
Marten Seemann
e1bcedc78c
ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types (#3888) 2023-06-04 13:04:28 -07:00
Marten Seemann
bde283640b
ackhandler: be explicit about skipping packet numbers (#3886) 2023-06-04 12:45:43 -07:00
Marten Seemann
6619e17dd7
ackhandler: don't log / trace skipped packets when declaring them lost (#3887) 2023-06-04 12:29:40 -07:00
Marten Seemann
8f3a68b4eb
ackhandler: use a slice to keep track of sent packets (#3841)
* ackhandler: simplify deletion of old packets in packet history

* ackhandler: use a slice to keep track of sent packets

This is a vastly simpler data structure than the combination of map
and linked list used before. It avoids using a linked list (bad cache
locality) and a sync.Pool (for list elements), as well as having to do
hash table lookups.

In the future, this can be easily replaces with a ring buffer, avoiding
all allocations.

* ackhandler: don't store packets that were declared lost
2023-06-04 02:36:38 -07:00
Marten Seemann
6f07050269
ackhandler: apply logic from RFC 9000 to derive packet number length (#3885) 2023-06-04 02:17:57 -07:00
Marten Seemann
b27d114f07
pass the current timestamp to the pacer instead of calling time.Now() (#3824) 2023-06-03 00:26:30 -07:00
Marten Seemann
9d70bc24a5 simplify pacing logic by introducing a SendPacingLimited send mode 2023-06-02 18:35:02 +03:00
Marten Seemann
7d8db149b6 introduce a buffer pool for large buffers (20k) 2023-06-02 18:35:02 +03:00
Marten Seemann
7ea6dc991f
use the same ACK frame struct in the send path, remove ACK frame pool (#3831) 2023-06-02 08:34:27 -07:00
Marten Seemann
21544085e1
Merge pull request #3878 from quic-go/single-ack-receiving
use a single ACK frame in the receive path
2023-06-02 18:06:06 +03:00
Marten Seemann
a595d34557 use a single ACK frame in the receive path 2023-06-02 17:21:46 +03:00
Marten Seemann
0438eada95
use ackhandler.Frame directly, not as a pointer, remove its sync.Pool (#3835) 2023-06-02 04:56:18 -07:00
Marten Seemann
f8d24ef1e9
don't use closures for passing OnLost and OnAcked STREAM frame callbacks (#3833) 2023-06-02 04:14:04 -07:00