Commit graph

51 commits

Author SHA1 Message Date
Gaukas Wang
4973374ea5
sync: quic-go 0.42.0
Signed-off-by: Gaukas Wang <i@gaukas.wang>
2024-04-23 22:34:55 -06: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
f392c8a17b
receive stream: put back the buffer for the last STREAM frame (#3832) 2023-06-02 03:22:51 -07:00
Marten Seemann
aa091fe672
remove unneeded tracking variables from streams, optimize memory layout (#3699)
* remove the closedForShutdown boolean in the send stream

* remove the canceledWrite boolean in the send stream

* remove the closedForShutdown boolean in the receive stream

* remove the canceledRead boolean in the receive stream

* remove the resetRemotely boolean in the receive stream

* optimize memory layout of the receiveStream

This brings it down from 200 to 192 bytes.
2023-02-13 13:57:00 -08:00
Marten Seemann
3f9d8feab2
return StreamErrors for all kinds of stream cancelations (#3681)
* fix: return typed errors when after cancelling actions

This is errors.Is'ed by libp2p and the fmt.Errorf messages didn't passed that test:
82315917f7/p2p/transport/quic/stream.go (L23)

* replace StreamErrorAction with a local / remote flag

Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2023-01-26 12:58:06 -08:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
0f352f2653 remove unused version parameter from receive stream constructor 2023-01-18 20:51:59 +13:00
Marten Seemann
ec118e440c
protect against concurrent use of Stream.Read (#3380) 2022-04-25 03:58:11 -07:00
Marten Seemann
344feb9ea5 don't unlock the receive stream mutex for copying from STREAM frames 2021-10-16 19:24:28 +02:00
Marten Seemann
90727cb41a introduce a quic.StreamError type and use it for stream cancelations 2021-05-01 09:39:52 +07:00
Marten Seemann
f5238bf7b1 move the ApplicationErrorCdoe to the qerr package 2021-05-01 09:38:49 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
838dd6e81a rename StreamFrame.FinBit to Fin 2020-07-02 16:41:43 +07:00
Marten Seemann
865332015c rename ResetStreamFrame.ByteOffset to FinalSize 2020-07-02 16:41:43 +07:00
Marten Seemann
652125367c remove unused readOffset member variable in receiveStream 2020-05-23 07:53:13 +07:00
Marten Seemann
996dd42055 move deadlineTimer declaration out of the Read loop 2020-05-04 18:46:51 +07:00
Marten Seemann
93cee1e07b stop the deadline timer in Stream.Read and Write 2020-05-03 11:22:58 +07:00
Marten Seemann
529e14d0cc simplify onStreamCompleted in the receiveStream 2019-11-09 11:36:09 +07:00
Marten Seemann
dc66c8a4e4 fix handling of RESET_STREAM frames after receiving the final offset 2019-11-09 11:36:09 +07:00
Marten Seemann
63585d1b5e fix handling of duplicate FIN bits after a stream was canceled 2019-11-09 11:35:58 +07:00
Marten Seemann
6b22f36d82 add the stylecheck linter 2019-09-17 13:50:19 +07:00
Marten Seemann
ba1bcf6e0c use the STREAM frame buffer for receiving data 2019-09-04 16:58:44 +07:00
Marten Seemann
2787a6051a remove some defer statements in the stream 2019-01-24 16:59:13 +07:00
Marten Seemann
46b1d7a1fc call the onStreamCompleted callback without holding the stream mutex 2019-01-24 16:59:13 +07:00
Marten Seemann
ca939df44e remove the error return value from Stream.CancelRead 2019-01-24 16:00:11 +07:00
Marten Seemann
1d7d532035 release connection-level flow control credit when a stream is reset 2019-01-23 12:49:48 +07:00
Marten Seemann
1864e301ef move tracking of the final stream offset to the stream 2019-01-23 12:48:37 +07:00
Marten Seemann
9888db457f don't send a STOP_SENDING if the stream was already reset by the peer 2019-01-23 12:48:37 +07:00
Marten Seemann
bfbf0bca48 always queue window updates when data is being read
There's no need to have a separate call in the flow controller interface
for this.
2019-01-22 23:46:12 +07:00
Marten Seemann
0be8e033ab fix race conditions when setting read and write deadlines 2018-12-20 14:43:11 +06:30
Marten Seemann
022189dfda rename the RST_STREAM frame to RESET_STREAM frame 2018-11-04 12:26:02 +07:00
Marten Seemann
3266e36811 drop support for gQUIC 2018-10-30 10:20:39 +07:00
Marten Seemann
82508f1562 use tls-tris instead of mint 2018-10-26 16:18:49 +07:00
Marten Seemann
d9edacf711 use a time.Timer for read deadlines 2018-10-18 18:01:03 +01:00
Marten Seemann
8bd6168511 never increase the flow control limit for the crypto stream 2018-09-19 09:00:23 -04:00
Marten Seemann
74662e8dae rename the streamFrameSorter to frameSorter 2018-08-26 10:10:00 +07:00
Marten Seemann
53d76b6664 only use duplicate stream data error internally in the streamFrameSorter 2018-08-26 09:49:11 +07:00
Marten Seemann
8dc4b2d564 pass the stream data, not the STREAM frame, to the streamFrameSorter 2018-08-26 09:26:59 +07:00
Marten Seemann
dbada7ad02 store stream data, not STREAM frames, in the streamFrameSorter 2018-08-26 08:59:48 +07:00
Marten Seemann
ac59e284dd remove the Head method from the streamFrameSorter
We now store the STREAM frame that is currently being read in the
receiveStream, and pop it from the streamFrameSorter directly.
2018-08-21 14:41:47 +07:00
Marten Seemann
83be64bb73 fix deadlock between onStreamCompleted and Session.Close 2018-06-01 13:05:30 +08:00
Marten Seemann
2e8a5807ba queue stream-level window updates from the flow controller directly 2018-05-08 15:17:45 +09:00
Marten Seemann
81974d30d6 run gosimple in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
5d45bb046b pass the version to the receiveStream constructor 2018-02-02 15:01:03 +08:00
Marten Seemann
e802491a8f create internal interfaces for send and receive streams
And use those for handling frames.
2018-01-10 08:56:13 +07:00
Marten Seemann
8a3f807a12 immediately delete a stream when it is completed
By introducing a callback to the stream, which the stream calls as soon
as it is completed, we can get rid of checking every single open stream
if it is completed.
2018-01-03 10:30:20 +07:00
Marten Seemann
d195085f65 don't queue the complete window update, but only the stream ID 2017-12-21 19:03:52 +07:00
Marten Seemann
c270de3538 queue stream window updates directly from stream.Read
By queueing receive window updates directly from stream.Read, it is no
longer necessary to ask every stream for window updates when sending a
packet.
2017-12-20 13:03:36 +07:00
Marten Seemann
fc8fafd15e pass a callback containing the callbacks to the stream 2017-12-20 11:49:05 +07:00
Marten Seemann
d2e31c04ab generate the streamI mock in the quic package
By doing so, we can mock private methods of the stream, so they cannot
be type-asserted by users of quic-go.
2017-12-20 10:42:07 +07:00