cloud-dns-ios/dns/BlocklistOption.swift

79 lines
1.7 KiB
Swift
Raw Normal View History

//
// BlocklistOption.swift
// dns
//
// Created by Benjamin Erhart on 14.04.26.
//
import Foundation
import NetworkExtension
enum BlocklistOption: String, CaseIterable, Identifiable {
case secure = "Secure"
case securePlusAdblock = "Secure + Adblock"
var id: String { rawValue }
var enabled: Bool {
switch self {
case .secure:
return true
case .securePlusAdblock:
2026-04-14 18:22:06 +02:00
return false
}
}
var description: String {
switch self {
case .secure:
return "Malware and phishing protection"
case .securePlusAdblock:
return "Security plus ad and tracker blocking"
}
}
var icon: String {
switch self {
case .secure:
return "shield"
case .securePlusAdblock:
return "shield.righthalf.filled"
}
}
var server: String {
switch self {
case .secure:
return "dns.sr2.uk"
case .securePlusAdblock:
return "dnsplus.sr2.uk"
}
}
var ipv4: String {
switch self {
case .secure:
return "144.76.160.194"
case .securePlusAdblock:
return "192.0.2.1"
}
}
var ipv6: String {
switch self {
case .secure:
return "2a01:4f8:2210:23ea::4"
case .securePlusAdblock:
return "2001:db8::1"
}
}
var settings: NEDNSOverHTTPSSettings {
let settings = NEDNSOverHTTPSSettings(servers: [ipv4, ipv6])
settings.serverURL = URL(string: "https://\(server)/dns-query")
settings.matchDomains = ["", "invalid"]
return settings
}
}