Post

Replies

Boosts

Views

Activity

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.
Feb ’22
Reply to Deny system-priviledge error with appproxy and dnsproxy
Thanks Matt for the reply. Are you noticing any failures for your Network System Extensions when you see these logs? These logs happens periodically within one minute interval. But it seems Network System Extensions are all healthy. Are you seeing these logs for specific flows that your provider is handling? For example system flows? This is a good point. There are some system flows from our system service. Need to verify is it the same without that. Thanks for the suggestion.
Jan ’22
Reply to App proxy how to handle when flow/connection/session data read empty
This could be done with a copier state update handler that is propagating state for both sides of the connection (local flow and remote side of connection). Currently it is done like that: any EOF read back, will close both sides flow and connection (session). Does it matter to simplify like that? For your update handler to propagate state, do you have any example code for a reference? Thanks in advance for any suggestion.
Jan ’22
Reply to Monterey 12.0 appproxy network down with dns duration test
Thanks a lot for this suggestion: by using netstat -vnp udp | wc -l, it is obvious the difference between BigSur and Monterey. On Monterey, the return value keeps increasing when doing dns request loop from < 100 all the way to thousands; while on BigSur, it is steady at around 46~48! That was tested with the same set of code (same installer of our software) Obviously, there should be something wrong in terms of udp socket close missing with Monterey.
Jan ’22