Posts

Post not yet marked as solved
1 Replies
1k Views
I've noticed that the OS stops consulting the VPN extension for DNS after a delayed response.We want to use split-tunnel, but handle all of the DNS. We have our DNS settings for our Packet Tunnel Provider set as described here:https://forums.developer.apple.com/message/122209#122209With an empty match domain. That works Ok, but if we receive any significantly (~3 seconds) delayed response to a DNS query the OS starts sending all DNS queries out the wireless interface instead of over the VPN.It doesn't try again right away, but continues to use the wireless interface instead of the VPN interface. It will try again at intervals and things can recover, but this causes serious issues for the VPN.Does anyone know of a way to tweak the settings that determine when the system falls back to the system DNS resoluton instead of the VPN DNS resolution, and how it retries?We have to support macOS versions older than 10.15, so we can't use the DNS proxy provider.Kevin
Posted
by kjbrock.
Last updated
.
Post not yet marked as solved
2 Replies
926 Views
I have an XCTest case which is trying to enter text into a text field.let app = XCUIApplication() let query = app.tables query.staticTexts[“New..."].tap() let serverAddress = query.cells.containing(.cell, identifier:"serverTableViewCell").textFields.element if serverAddress.exists { serverAddress.tap() serverAddress.typeText(server) }This has to run on a physical device, because the application is a Network Extension VPN.It generally works fine, but every now and then it starts failing. When it fails everything looks like it's succeeding.I can find the fieldI can tap on the field, and I see the text cursorI can call typeText()No errors, messages, informative output... But nothing appears in the text field.This appears to happen after there's been some sort of system dialog on the device (not entirely sure it's related, but the correlation is strong) but even once that dialog is gone the test continues to fail.Things are complicated because the device is in the office--and we aren't allowed to go into the office at the moment. I can't re-start the device, because I'm pretty sure that will require physical presence at the device to unlock it again.I *can* alter settings on the device using teh XCTest interfaces to control System Settings. I tried disabling all notifications, but things are still failing.I saw a similar question with the same symptoms, but it was on a simulator, and the solution was to reset the simulator. Not an option in this case: https://forums.developer.apple.com/thread/125010Is it possible that once the system dialog/alert/notification is apparently gone that it's still hogging keyboard input? If that is the case, anyone know how I could clear it? Without being physically present at the device?Any other suggestions would be great.
Posted
by kjbrock.
Last updated
.
Post not yet marked as solved
4 Replies
737 Views
We have a case where we need to send, and receive, an ICMP packet from a Network Extension. Not *tunnel* an ICMP packet--that works fine--but send an ICMP packet from the NE that's not going through the tunnel.The send is fine. I create a datagram socket with a protocol of IPPROTO_ICMP, and I can send the ICMP packet. I see it on the wire, I see the response on the wire.When I call recvfrom() on the socket I get a permission error. I can see that there are 84 bytes waiting to be read, but I can't read them... Same fd I just sent from.I tried binding the socket, but get a permission error when I try to bind(). I've tried bind() with address set to 0, INADDR_ANY, and to the local physical address, always a permission error.Is the problem the lack of bind()? If so, does anyone have an idea about why bind() might be failing?If the problem isn't lack of bind(), does anyone have an idea what could be happening here? Could it be a limitation on what can be done from a Network Extension?
Posted
by kjbrock.
Last updated
.
Post not yet marked as solved
1 Replies
1.1k Views
I'm seeing a crash in applicationWillFinishLaunching on Catalina when I attempt to debug one of our apps.It happens with Xcode 10.2 and with the Xcode 11 beta. It doesn't happen on earlier versions of macOS.This is what appears to cause it:SetSystemUIMode(kUIModeNormal, 0);But if I comment that out I get a crash in NSApplicationMain,so there's probably some deeper problem. If I build the application and run it outside the debugger it works (except for a problem I raised in another thread).This happens with both Xcode 10.2 and with the Xcode 11 beta, so it appears to be some interaction between Xcode and the OS.Has anyone been running into this? Any ideas?Kevin
Posted
by kjbrock.
Last updated
.
Post not yet marked as solved
7 Replies
1.4k Views
On Mojave & earlier our NE VPN works fine. On Catalina the VPN starts, and traffic is being tunneled, but the sendProviderMessage:messageData:returnErr:ResponseHandler: method isn't working.- I don't get back an error on the call- I do get back nil for the data in the response handler- I don't see a call to the extension's handleAppMessage:completionHandler: entry point.Has anyone else been seeing this? I haven't seen anything from Apple yet about changes to the NE framework.
Posted
by kjbrock.
Last updated
.