Decoy Fasttrack Drafts

Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
This commit is contained in:
Alexey
2026-09-05 21:18:48 +03:00
parent 9f023ff9c7
commit 106b26a5b7
28 changed files with 920 additions and 59 deletions
+4
View File
@@ -427,6 +427,10 @@ pub(crate) fn resolve_reload_config(
fields.push("web.limits".to_string());
effective.web.limits = old.web.limits.clone();
}
if old.web.decoy_fasttrack_mode != desired.web.decoy_fasttrack_mode {
fields.push("web.decoy_fasttrack_mode".to_string());
effective.web.decoy_fasttrack_mode = old.web.decoy_fasttrack_mode;
}
if effective.web.carrier_negotiation_enabled()
&& effective.web.carrier_learning
&& effective.web.limits.max_carrier_learning_entries < WEB_CARRIER_LEARNING_MIN_ENTRIES
+21
View File
@@ -170,6 +170,27 @@ fn web_allocation_limits_are_deferred_until_restart() {
assert!(!resolved.runtime_changed);
}
#[test]
fn web_decoy_fasttrack_mode_is_deferred_without_runtime_publication() {
let mut old = ProxyConfig::default();
old.rebuild_runtime_user_auth().unwrap();
old.rebuild_runtime_web().unwrap();
let mut desired = old.clone();
desired.web.decoy_fasttrack_mode = crate::config::WebDecoyFastTrackMode::Enforce;
let resolved = resolve_reload_config(&old, &desired).unwrap();
assert_eq!(
resolved.deferred_process_fields,
vec!["web.decoy_fasttrack_mode".to_string()]
);
assert_eq!(
resolved.effective.web.decoy_fasttrack_mode,
old.web.decoy_fasttrack_mode
);
assert!(!resolved.runtime_changed);
}
#[test]
fn enabling_learning_is_deferred_when_retained_capacity_is_too_small() {
let mut old = ProxyConfig::default();