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