Marten Seemann
576aa1747f
simplify stream ID handling in the incoming streams map ( #5207 )
...
* simplify stream ID handling in the incoming streams map
No functional change expected.
* protocol: move stream ID constant definition
2025-06-08 12:25:36 +02:00
Marten Seemann
1169d97e81
convert ReceiveStream interface to a struct ( #5173 )
2025-06-01 06:08:18 +02:00
Marten Seemann
78e77bcfdb
convert SendStream to a struct ( #5172 )
2025-06-01 05:53:53 +02:00
Marten Seemann
eb656df2fe
convert Stream interface to a struct ( #5149 )
2025-06-01 05:40:05 +02:00
Marten Seemann
a1aa369464
don't use net.Errors for streams map error ( #5060 )
2025-04-19 16:16:47 +02: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
b52c33939d
introduce a StreamLimitReachedError for Connection.Open{Uni}Stream ( #4579 )
...
Using a concrete type is preferable to relying on interpreting the
return values from net.Error.Timeout and net.Error.Temporary, especially
since the latter has been deprecated since Go 1.18.
2024-06-28 06:58:28 -07:00
Marten Seemann
e310b80cf3
expose the connection tracing ID on the stream context ( #4414 )
...
This is especially interesting for HTTP servers: They can now learn
which connection a request was received on.
2024-04-06 07:41:25 -07: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
d4a0793b6a
remove unused version parameter from streams map constructor
2023-01-18 20:52:00 +13:00
Marten Seemann
d972a5e8f2
remove unused version parameter from stream constructor
2023-01-18 20:52:00 +13:00
Marten Seemann
0f352f2653
remove unused version parameter from receive stream constructor
2023-01-18 20:51:59 +13:00
Marten Seemann
1646fd545e
refactor send stream to remove version from constructor
2023-01-18 20:51:59 +13:00
Marten Seemann
621e9d4642
use a generic streams map for incoming streams
2022-08-11 18:31:45 +04:00
Marten Seemann
bebff462c8
use a generic streams map for outgoing streams ( #3488 )
2022-08-11 05:14:52 -07:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
7cd4dea764
update the flow control windows of streams opened in 0-RTT
...
The server might have increased the initial flow control window. We need
to make sure to inform all streams opened during during the 0-RTT
period.
2021-03-12 15:09:50 +08:00
Marten Seemann
8b63039664
add a function to reset the streams map after 0-RTT rejection
2021-03-09 17:59:49 +08:00
Marten Seemann
8a0b1dd78d
remove unused error return value from HandleMaxStreamsFrame
2021-03-07 12:36:50 +08:00
Marten Seemann
c7d3aeea3d
move the transport parameter stream limit check to the parser
2020-12-18 13:00:33 +07:00
Marten Seemann
6217ec55fd
remove stray comment in the streams map
2020-12-18 12:34:04 +07:00
Marten Seemann
6d61dccc2f
rename the constructors for the various qerr.Error flavors
2020-03-21 10:53:03 +07:00
Marten Seemann
0ef4f06189
move the transport parameters from the handshake to the wire package
2020-03-13 16:20:11 +07:00
Marten Seemann
2c2b5da612
Merge pull request #2209 from lucas-clemente/stream-count-errors
...
throw FRAME_ENCODING_ERRORs when MAX_STREAMs and STREAMS_BLOCKED frame exceed the maximum stream count
2019-11-09 11:37:23 +07:00
Marten Seemann
1e7c7842b9
move overflow check in MAX_STREAMS frame to frame parser
2019-11-08 11:44:56 +07:00
Marten Seemann
394ff04fb1
fix error message for stream deletion errors
2019-11-08 11:00:43 +07:00
Marten Seemann
2b8cece60a
add a context to Session.Open{Uni}StreamSync
2019-06-22 19:37:21 +08:00
Marten Seemann
5550ba2c3b
add a context to Session.Accept{Uni}Stream
2019-06-22 19:37:11 +08:00
Marten Seemann
857e4ae9a9
use stream numbers, not stream ids, in the stream maps
2019-06-05 20:01:51 +08:00
Marten Seemann
a8633a952c
introduce a type for the stream number
2019-06-05 17:45:17 +08:00
Marten Seemann
42fdeab091
remove stray print statement in streams map
2019-06-05 13:23:17 +08:00
Marten Seemann
51c9c42adc
reject transport parameters with too large stream counts
2019-04-01 11:58:18 +09:00
Marten Seemann
7b02b87026
reject MAX_STREAMS frames with too large stream counts
2019-04-01 11:57:23 +09:00
Marten Seemann
a2e48e204b
return a net.Error when opening streams
...
net.Error.Temporary() will be true if no stream can be opened when the
peer's stream limit is reached.
2019-01-06 17:18:43 +07:00
Marten Seemann
9518c90c0a
implement and use the MAX_STREAMS frame
2018-11-10 09:38:50 +07:00
Marten Seemann
0f931ca54e
use a uint64 for stream counts
2018-11-10 09:05:33 +07:00
Marten Seemann
e8de94485c
move more stream ID logic to the protocol package
2018-11-10 09:05:33 +07:00
Marten Seemann
44243b4f52
use the stream helper function in the streamsMap
2018-11-01 15:50:47 +07:00
Marten Seemann
82508f1562
use tls-tris instead of mint
2018-10-26 16:18:49 +07:00
Marten Seemann
b40942d39e
send stream counts, not stream IDs, in the transport parameters
2018-03-16 17:41:21 +00:00
Marten Seemann
11af98e338
run misspell in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
58b20c6009
make the number of incoming streams configurable, for IETF QUIC
2018-02-23 22:15:31 +08:00
Marten Seemann
1ec720f2f2
implement sending of STREAM_ID_BLOCKED frames
2018-02-06 10:04:40 +08:00
Marten Seemann
8e332c2e13
implement sending of MAX_STREAM_ID frames
...
We can now impose a limit on the number of stream for IETF QUIC, and
advertise that in the transport parameters during the handshake.
2018-02-06 08:32:16 +08:00
Marten Seemann
e36b8d8e30
throw an error if the peer tries to open a too high stream
2018-02-06 08:30:58 +08:00
Marten Seemann
46e20ce8c9
implement handling of MAX_STREAM_ID frames
2018-02-06 08:30:58 +08:00
Marten Seemann
02949853f7
use the new stream maps for the IETF QUIC streams map
2018-02-06 07:53:34 +08:00
Marten Seemann
25b8052985
return the putStream error in the streamsMap
2018-02-02 12:01:04 +08:00
Marten Seemann
fa4724c8eb
remove counting of streams from the IETF streamsMap
...
Streams have to be counted to enforce the max stream limit. We don't
advertise a max stream limit in the TLS handshake yet, so this never
worked for IETF QUIC. Removing this will make implementing
unidirectional streams easier.
2018-01-10 08:56:15 +07:00
Marten Seemann
a20e94ee16
use separate streamsMaps for gQUIC and IETF QUIC
...
This is a lot of duplicate code for now, but it will make moving towards
the new stream ID mapping in IETF QUIC (and unidirectional streams) much
easier.
2018-01-10 08:56:15 +07:00