Skip to main content

Mountain/Binary/Build/DnsCommands/
dns_get_zone_info.rs

1//! `dns_get_zone_info` Tauri command - returns the static
2//! `land.playform.cloud` zone snapshot (records + DNSSEC flag) used by
3//! the diagnostic panel.
4
5use tauri::State;
6
7use crate::Binary::Build::{
8	DnsCommands::{ZoneInfo::ZoneInfo, ZoneRecord::ZoneRecord},
9	Scheme::DnsPort,
10};
11
12#[tauri::command]
13pub fn dns_get_zone_info(dns_port:State<DnsPort>) -> Result<ZoneInfo, String> {
14	if dns_port.0 == 0 {
15		return Err("DNS server is not running".to_string());
16	}
17
18	let mut records = vec![
19		ZoneRecord {
20			name:"editor.land.".to_string(),
21
22			record_type:"SOA".to_string(),
23
24			ttl:3600,
25
26			data:"ns1.editor.land. admin.editor.land. 1 3600 600 604800 86400".to_string(),
27		},
28		ZoneRecord {
29			name:"editor.land.".to_string(),
30
31			record_type:"NS".to_string(),
32
33			ttl:3600,
34
35			data:"ns1.editor.land.".to_string(),
36		},
37		ZoneRecord {
38			name:"editor.land.".to_string(),
39
40			record_type:"DNSKEY".to_string(),
41
42			ttl:432000,
43
44			data:"256 3 13 (ECDSA P-256 Zone Signing Key)".to_string(),
45		},
46		ZoneRecord {
47			name:"ns1.editor.land.".to_string(),
48
49			record_type:"A".to_string(),
50
51			ttl:3600,
52
53			data:"127.0.0.1".to_string(),
54		},
55		ZoneRecord {
56			name:"code.land.playform.cloud.".to_string(),
57
58			record_type:"A".to_string(),
59
60			ttl:3600,
61
62			data:"127.0.0.1".to_string(),
63		},
64		ZoneRecord {
65			name:"api.land.playform.cloud.".to_string(),
66
67			record_type:"A".to_string(),
68
69			ttl:3600,
70
71			data:"127.0.0.1".to_string(),
72		},
73		ZoneRecord {
74			name:"*.editor.land.".to_string(),
75
76			record_type:"A".to_string(),
77
78			ttl:3600,
79
80			data:"127.0.0.1".to_string(),
81		},
82	];
83
84	let rrsig_types = vec!["SOA", "NS", "DNSKEY", "A"];
85
86	for rtype in rrsig_types {
87		records.push(ZoneRecord {
88			name:"editor.land.".to_string(),
89			record_type:"RRSIG".to_string(),
90			ttl:432000,
91			data:format!("{} 13 2 432000 {} {} {} land.playform.cloud.", rtype, 0, 0, 0),
92		});
93	}
94
95	let record_count = records.len();
96
97	Ok(ZoneInfo { origin:"editor.land.".to_string(), record_count, records, has_dnssec:true })
98}