WEB Ephemeral Lifecycle

Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
This commit is contained in:
Alexey
2026-08-28 22:39:18 +03:00
parent ac71d92ec4
commit 012dc07a98
18 changed files with 1434 additions and 65 deletions
+8 -6
View File
@@ -288,12 +288,14 @@ impl WebSession {
return None;
}
let manager = self.manager.upgrade()?;
let peer_port = manager.try_acquire_stream(
self.profile_key,
self.profile.max_streams,
self.client_ip,
self.profile.public_addr,
)?;
let peer_port = manager
.try_acquire_stream(
self.profile_key,
self.profile.max_streams,
self.client_ip,
self.profile.public_addr,
)
.ok()?;
if state.active_peer_ports.insert(peer_port) {
return Some(peer_port);
}
+2 -4
View File
@@ -229,14 +229,12 @@ impl WebSession {
let Some(manager) = self.manager.upgrade() else {
return Err(ManagerError::Closed);
};
let Some(peer_port) = manager.try_acquire_stream(
let peer_port = manager.try_acquire_stream(
self.profile_key,
self.profile.max_streams,
self.client_ip,
self.profile.public_addr,
) else {
return Err(ManagerError::Limit);
};
)?;
if !state.active_peer_ports.insert(peer_port) {
manager.release_stream(
self.profile_key,
+2 -2
View File
@@ -153,7 +153,7 @@ async fn rejected_open_retains_stream_quota_until_lane_socket_teardown() {
runtime.session.client_ip,
runtime.session.profile.public_addr,
)
.is_none()
.is_err()
);
runtime.session.close_websocket_lane(reservation);
@@ -271,7 +271,7 @@ async fn closed_session_keeps_stream_owned_quota_until_task_completion() {
runtime.session.client_ip,
runtime.session.profile.public_addr,
)
.is_none()
.is_err()
);
runtime.session.wait().await;
let peer_port = runtime