Post

Replies

Boosts

Views

Activity

Reply to Is there any hardware limitation to use Network System Extension
However, there do have some older devices, say 2015 macbook proc, even 2019 one has some problem of network drop after running for some time, say, in a couple of hours. Sorry. Correct statement here: However, there do have some older devices, say 2013 macbook proc, even 2015 one has some problem of network drop after running for some time, say, in a couple of hours.
Topic: App & System Services SubTopic: Drivers Tags:
Jan ’22
Reply to dns proxy sys ext process can take > 1 minute to respawn
Thanks Matt for the reply. Is there anything out of the ordinary going on in your provider that the system may be trying to clean up before respawning the System Extension? For example, if you take a blank NEDNSProxyProvider and start it on a fresh test machine, does it take the same amount of time to respawn as your application? Minimised my project with NEDNSProxyProvider only and inside handleUDPFlow, doing nothing but return true directly like blew, same behaviour reproduced. Interesting thing is that when it happens, the respawn time is constant at around one minute five seconds (after sys ext process got killed). But if you rest it for a while before the next process kill, it might return back to normal again until you keep trying for multiple times (< 10 times normally). import NetworkExtension class DNSProxyProvider: NEDNSProxyProvider {   override func startProxy(options:[String: Any]? = nil, completionHandler: @escaping (Error?) -> Void) { completionHandler(nil)   }       override func stopProxy(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {     completionHandler()   }       override func sleep(completionHandler: @escaping () -> Void) {     completionHandler()   }   override func wake() {   }   // MARK: Flow Handling & filtering   override func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool {     if flow is NEAppProxyTCPFlow {       return false     } else if let udpFlow = flow as? NEAppProxyUDPFlow {       return self.handleUDPFlow(udpFlow)     }     return false   }       @available(macOS 10.15, *)   private func handleUDPFlow(_ flow: NEAppProxyUDPFlow) -> Bool {     return true   } } Also, does this same thing reproduce on multiple machines? Tried on a fresh installed Big Sur 11.6.2, same thing reproduced.
Topic: App & System Services SubTopic: Drivers Tags:
Feb ’22