Hello,
I've tried setting up a DNS Proxy Provider using a NEDNSProxyProvider, but every time I get the extension to run, it merely blocks internet traffic. Any ideas on what I'm doing wrong? Thanks?
override func startProxy(options:[String: Any]? = nil, completionHandler: @escaping (Error?) -> Void) {
os_log("DNSProxyProvider: startProxy")
Logging.log("DNSProxyProvider: startProxy")
completionHandler(nil)
}
override func stopProxy(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
os_log("DNSProxyProvider: stopProxy")
Logging.log("DNSProxyProvider: stopProxy")
completionHandler()
}
override func sleep(completionHandler: @escaping () -> Void) {
os_log("DNSProxyProvider: sleep")
Logging.log("DNSProxyProvider: sleep")
completionHandler()
}
override func wake() {
os_log("DNSProxyProvider: wake")
Logging.log("DNSProxyProvider: wake")
}
override func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool {
os_log("DNSProxyProvider: handleFlow")
Logging.log("DNSProxyProvider: handleFlow")
if let udpFlow = flow as? NEAppProxyUDPFlow {
let localHost = (udpFlow.localEndpoint as! NWHostEndpoint).hostname
let localPort = (udpFlow.localEndpoint as! NWHostEndpoint).port
if #available(OSX 11.0, *) {
let remoteHost = udpFlow.remoteHostname
os_log("DNSProxyProvider TCP HOST : %@", remoteHost as! CVarArg)
} else {
// Fallback on earlier versions
}
let remotePort = 53
os_log("DNSProxyProvider TCP PORT : %@", remotePort)
os_log("DNSProxyProvider UDP HOST : %@", localHost)
os_log("DNSProxyProvider UDP PORT : %@", localPort)
let flowInfo = [
FlowInfoKey.localPort.rawValue: localPort,
FlowInfoKey.remoteAddress.rawValue: localHost
]
IPCConnection.shared.logFlow(flowInfo, at: Date(), userAllowed: true)
}
return true
}