gr1ffon
4ba42a8456
replace repo
2025-11-14 04:04:40 +03:00
Marten Seemann
2ac3b16df4
improve connection timer logic ( #5339 )
...
* simplify timer resets
As of Go 1.23, timer resets work as expected, and there’s no need to
read a (potentially) stale value from the timer channel.
* don't save the last time
* track if blocked
* remove unblock after sendingScheduled
* fix unblock logic when sending
* don't use fallthrough
* track the blocking mode
* remove stale comment
2025-09-24 10:43:01 +02:00
Marten Seemann
adc13be540
implement a memory-optimized time.Time replacement ( #5334 )
...
* implement a memory-optimized time.Time replacement
* monotime: properly handle systems with bad timer resolution (Windows)
* monotime: simplify Since
2025-09-14 08:12:10 +02:00
Marten Seemann
b2f24318af
implement receiver side behavior for RESET_STREAM_AT ( #5235 )
...
* implement receiver side behavior for RESET_STREAM_AT
* simplify reliable offset tracking
2025-06-26 08:42:08 +02:00
Marten Seemann
eb08018a5c
explictly expose all method on the Stream ( #5214 )
...
This hides the fact that a Stream is composed of a ReceiveStream and a
SendStream. This is an implementation detail and should not be exposed.
2025-06-09 11:14:58 +02:00
Marten Seemann
1169d97e81
convert ReceiveStream interface to a struct ( #5173 )
2025-06-01 06:08:18 +02:00
Marten Seemann
5a6187c870
reliably queue MAX_DATA frames ( #4844 )
2025-01-08 09:53:23 +08:00
Marten Seemann
40a768e77b
flowcontrol: avoid calling time.Now(), pass time as a function parameter ( #4731 )
2024-11-28 17:46:22 +08:00
sukun
d22d579733
don't cancel streams after shutdown ( #4673 )
...
This ensures that `stream.Write` and `stream.Read` return the error code
from connection close, if the stream was closed as a result of
connection close.
2024-09-13 21:47:48 -07:00
Marten Seemann
af9fa7a555
queue stream-related control frames in the respective stream ( #4610 )
...
* use a separate method for queueing control frames from the streams map
* queue stream-related control frames in the respective stream
2024-08-04 15:42:56 -07:00
Marten Seemann
42f04d4e02
refactor frame packing to logic to not access the streams map ( #4596 )
...
* avoid accessing the streams map when packing stream data
* avoid accessing the streams map when packing flow control frames
* remove streamGetter interface
2024-07-28 12:32:54 -07:00
Marten Seemann
4b87539b1e
delay completion of the receive stream until the reset error was read ( #4460 )
...
* delay completion of the receive stream until the reset error was read
* fix handling of CancelRead after receiving a RESET_STREAM
2024-04-26 08:48:00 -07:00
Marten Seemann
06b421411d
remove unused ReceiveStream.CloseRemote method ( #4357 )
2024-03-09 02:29:43 -08: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