diff --git i/src/config/mod.rs w/src/config/mod.rs index dccc116..be2c634 100644 --- i/src/config/mod.rs +++ w/src/config/mod.rs @@ -4783,3 +4783,61 @@ node: ); } } + +#[cfg(test)] +mod archy_config_compatibility { + use super::*; + #[test] + fn archy_generated_node_config_keeps_current_lookup_defaults() { + let config = Config::parse_text(Path::new("fips.yaml"), r#"# Generated by archipelago — do not edit by hand. +# Regenerated on every key change and daemon upgrade. +node: + identity: + persistent: true + discovery: + timeout_secs: 5 + backoff_base_secs: 0 + backoff_max_secs: 0 + retry_interval_secs: 2 + max_attempts: 3 + lan: + enabled: true + nostr: + enabled: true + advertise: true + policy: configured_only + share_local_candidates: false + retry: + base_interval_secs: 1 + max_backoff_secs: 30 + max_retries: 30 + rate_limit: + handshake_resend_interval_ms: 400 + handshake_resend_backoff: 1.5 + handshake_max_resends: 10 +tun: + enabled: true + name: fips0 + mtu: 1280 +dns: + enabled: true + bind_addr: 127.0.0.1 +transports: + udp: + bind_addr: 0.0.0.0:2121 + tcp: + bind_addr: 0.0.0.0:8443 +peers: [] +"#).unwrap(); + assert_eq!(config.node.lookup.attempt_timeouts_secs, vec![1, 2, 4, 8]); + assert_eq!(config.node.lookup.backoff_base_secs, 0); + assert_eq!(config.node.lookup.backoff_max_secs, 0); + assert!(config.node.rendezvous.lan.enabled); + assert!(config.node.rendezvous.nostr.enabled); + assert!(config.node.rendezvous.nostr.advertise); + assert!(!config.node.rendezvous.nostr.share_local_candidates); + assert_eq!(config.node.rendezvous.nostr.policy, NostrRendezvousPolicy::ConfiguredOnly); + assert_eq!(config.node.retry.base_interval_secs, 1); + assert_eq!(config.node.rate_limit.handshake_resend_interval_ms, 400); + } +}