Mountain/Binary/Build/DnsCommands/
dns_get_zone_info.rs1use 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}