Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions quinn-proto/src/connection/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1419,6 +1419,11 @@ impl Connection {
self.streams.max_concurrent(dir)
}

/// Current number of locally initiated streams that may be concurrently open
pub fn max_locally_initiated_concurrent_streams(&self, dir: Dir) -> u64 {
self.streams.max_locally_initiated_concurrent(dir)
}

/// See [`TransportConfig::send_window()`]
pub fn set_send_window(&mut self, send_window: u64) {
self.streams.set_send_window(send_window);
Expand Down
4 changes: 4 additions & 0 deletions quinn-proto/src/connection/streams/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -870,6 +870,10 @@ impl StreamsState {
self.allocated_remote_count[dir as usize]
}

pub(crate) fn max_locally_initiated_concurrent(&self, dir: Dir) -> u64 {
self.max[dir as usize]
}

pub(crate) fn set_send_window(&mut self, send_window: u64) {
self.send_window = send_window;
}
Expand Down
19 changes: 19 additions & 0 deletions quinn/src/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,25 @@ impl Connection {
.clone_box()
}

/// Current number of locally initiated unidirectional streams that may be concurrently open
pub fn max_locally_initiated_concurrent_uni_streams(&self) -> u64 {
let conn = self
.0
.state
.lock("max_locally_initiated_concurrent_streams");
conn.inner
.max_locally_initiated_concurrent_streams(Dir::Uni)
}

/// Current number of locally initiated bidirectional streams that may be concurrently open
pub fn max_locally_initiated_concurrent_bi_streams(&self) -> u64 {
let conn = self
.0
.state
.lock("max_locally_initiated_concurrent_streams");
conn.inner.max_locally_initiated_concurrent_streams(Dir::Bi)
}

/// Succeeds when an incoming connection is proven not to be a replay attack.
///
/// Only interesting for `Connection`s obtained from [`Connecting::into_0rtt`]. On 1-RTT
Expand Down