Skip to main content

Mountain/Binary/Build/DnsCommands/
dns_get_zone_info.rs

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