From 5aef69414a71292fe5d7a6bc938203a8ee7e24a5 Mon Sep 17 00:00:00 2001 From: Jean-Yves <7360784+docjyJ@users.noreply.github.com> Date: Mon, 3 Mar 2025 10:22:24 +0100 Subject: [PATCH] Update dns.rs Use absolute format for domains in Zonefile. See: mail-server#1155 --- src/pages/directory/dns.rs | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/src/pages/directory/dns.rs b/src/pages/directory/dns.rs index 4a60b8a..53e64aa 100644 --- a/src/pages/directory/dns.rs +++ b/src/pages/directory/dns.rs @@ -34,46 +34,29 @@ struct DnsRecord { content: String, } -fn format_zonefile(records: &[DnsRecord], domain: &str) -> String { - let formatted_records: Vec<[&str; 3]> = records - .iter() - .filter_map(|record| { - record.name.strip_suffix(domain).map(|name| { - if name.is_empty() { - ["@", &record.typ, &record.content] - } else { - [ - name.strip_suffix('.').unwrap_or(name), - &record.typ, - &record.content, - ] - } - }) - }) - .collect(); - - let max_len = formatted_records.iter().fold([0, 0], |acc, x| { - [acc[0].max(x[0].len()), acc[1].max(x[1].len())] +fn format_zonefile(records: &Vec, domain: &str) -> String { + let max_len = records.iter().fold([0, 0], |[name, typ], x| { + [name.max(x.name.len()), typ.max(x.typ.len())] }); - formatted_records.iter().fold(String::new(), |acc, x| { + records.iter().fold(String::new(), |acc, x| { let key = format!( "{}{: