Post

Replies

Boosts

Views

Activity

DNSProxyProvider not running
I've created a MacOS app project which contains System Network Extension (DNS proxy). With help of https://developer.apple.com/forums/thread/81103?answerId=246229022 and https://stackoverflow.com/questions/45508605/how-to-use-nednsproxyprovider-in-ios-11. I enabled DNSProxyProvider. When I built the app for the first time a prompt asked to allow the system extension. I allowed it and Under network in system preference, I can see DNS is not running (yellow dot). I also changed my entitlements and info.plist as given in the https://stackoverflow.com/questions/45508605/how-to-use-nednsproxyprovider-in-ios-11 My APP delegate:           private func enable() {       NSLog("enabled already ",self.manager.isEnabled )               self.update {         self.manager.localizedDescription = "DNS"         let proto = NEDNSProxyProviderProtocol()         proto.providerBundleIdentifier = "com.procyon.ai.ProcyonDNS.SystemDNSProxyExtension"         self.manager.providerProtocol = proto         self.manager.isEnabled = true       } //      NEDNSProxyManager.conn                     }     private func disable() {       self.update {         self.manager.isEnabled = false       }     }     private func update(_ body: @escaping () -> Void) {       self.manager.loadFromPreferences { (error) in         guard error == nil else {           NSLog("DNS Test App: load error")           return         }         body()         self.manager.saveToPreferences { (error) in           guard error == nil else {             NSLog("DNS Test App: save error")             return           }           NSLog("DNS Test App: saved")         }       }     }   func applicationDidFinishLaunching(_ aNotification: Notification) {     self.enable()       //    let DNSManager=NEDNSProxyManager.shared() //    DNSManager.shared().start() {}     // Insert code here to initialize your application   } Extension : import OSLog class DNSProxyProvider: NEDNSProxyProvider {       static let log = OSLog(subsystem: "com.example.apple-samplecode.DNSTestBed.DNSExtension", category: "provider")     private let log: OSLog        override init() {      NSLog("QNEDNSProxy.Provider: init")      self.log = Self.log      os_log(.debug, log: self.log, "init")      super.init()          }   override func startProxy(options:[String: Any]? = nil, completionHandler: @escaping (Error?) -> Void) {     NSLog("QNEDNSProxy.Provider: start")     // Add code here to start the DNS proxy.     completionHandler(nil)   }   override func stopProxy(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {     NSLog("QNEDNSProxy.Provider: stop")     // Add code here to stop the DNS proxy.     completionHandler()   }   override func sleep(completionHandler: @escaping () -> Void) {     // Add code here to get ready to sleep.     completionHandler()   }   override func wake() {     // Add code here to wake up.   }   override func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool {     NSLog("QNEDNSProxy.Provider: new flow ")     NSLog("DNSProxyProvider: handleFlow")         if let tcpFlow = flow as? NEAppProxyTCPFlow {           let remoteHost = (tcpFlow.remoteEndpoint as! NWHostEndpoint).hostname           let remotePort = (tcpFlow.remoteEndpoint as! NWHostEndpoint).port           NSLog("DNSProxyProvider: handleFlow",remotePort," ", remoteHost)           // Do whatever I want with this data         } else if let udpFlow = flow as? NEAppProxyUDPFlow {           let localHost = (udpFlow.localEndpoint as! NWHostEndpoint).hostname           let localPort = (udpFlow.localEndpoint as! NWHostEndpoint).port           NSLog("DNSProxyProvider: handleFlow",localHost," ", localPort)           // Do whatever I want with this data         }     // Add code here to handle the incoming flow.     return false   } } As you can see I added logs in the extension code. But I don't those logs when I launch the app. start proxy is not executed and the main in the extension is also not executed (added logs there as well). I want to start the system extension when the app is launched. Any help would be great.
6
0
1.3k
Oct ’22