blob: 53b3c39c218645d1eae46f0f2e2783ddf116f5b6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
import Foundation
// MARK: - DNS Models
enum DNSRecordType: String, CaseIterable {
case A
case AAAA
case MX
case NS
case TXT
case CNAME
var queryType: Int {
switch self {
case .A: return 1
case .AAAA: return 28
case .MX: return 15
case .NS: return 2
case .TXT: return 16
case .CNAME: return 5
}
}
}
struct DNSRecord: Identifiable {
let id = UUID()
let value: String
let ttl: Int
}
struct DNSSection: Identifiable {
let id = UUID()
let recordType: DNSRecordType
var records: [DNSRecord]
var wildcardRecords: [DNSRecord] = []
var error: String?
}
// MARK: - SSL Models
struct SSLCertificateInfo {
let commonName: String
let subjectAltNames: [String]
let issuer: String
let validFrom: Date
let validUntil: Date
let daysUntilExpiry: Int
let chainDepth: Int
}
// MARK: - Cloudflare DNS-over-HTTPS Response
struct CloudflareDNSResponse: Decodable {
let Status: Int
let Answer: [CloudflareDNSAnswer]?
struct CloudflareDNSAnswer: Decodable {
let name: String
let type: Int
let TTL: Int
let data: String
}
}
|