diff --git a/src/main.rs b/src/main.rs index bfabdc2..5f6d87d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -196,11 +196,10 @@ fn insert_reflector( endpoint: SocketAddr, definition: ReflectorDefinition, ) -> anyhow::Result<()> { - if let Some(existing) = reflectors.get(&endpoint) { + if let Some(existing) = reflectors.get_mut(&endpoint) { let same_country = match (&existing.country, &definition.country) { (Some(a), Some(b)) => a.eq_ignore_ascii_case(b), - (None, None) => true, - _ => false, + _ => true, }; let same_protocols = existing .protocols @@ -217,6 +216,9 @@ fn insert_reflector( { anyhow::bail!("conflicting reflector definitions for resolved endpoint {endpoint}"); } + if existing.country.is_none() { + existing.country = definition.country; + } } else { reflectors.insert(endpoint, definition); }