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