Post

Replies

Boosts

Views

Activity

Reply to iOS NWUDPSession.isViable vs NWUDPSessionState ready
Still more to add...the above was running on an XR with 14.4.1. On a 5s with 12.5.1, the favicon request never makes it to the read handler, which is leading me to the NEProxySettings being required for http/https, at least for a NWUDPSession. If so, is there any way with a PacketTunnelProvider that all ip and tcp packets can be grabbed out of the tunnel without writing a proxy server for http traffic?
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’21
Reply to iOS NWUDPSession.isViable vs NWUDPSessionState ready
Also, do the settings require NEProxySettings to handle http/https traffic? I can see when I used NEProxySettings with a dummy endpoint, 127.0.0.1:54321, that browsers say the server can't be reached rather than saying there is no internet, which tells me that http/https requests go straight to the proxy server because I can see they never come through the NWUDPSession read handler. At this point, I would ask if there is a way to get the http packets as they come out of the VPN using a NWUDPSession read handler. If a proxy is required, then why does the http request for the favicon make it to the read handler without the proxy setting?
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’21
Reply to iOS NWUDPSession.isViable vs NWUDPSessionState ready
Hi Matt, I can log packets coming out of the read handler and going into the write handler, where I write packets to the NEPacketFlow. I also have a wireshark on the server that shows the packets coming in and the ones coming out. I know that there is something working because of what is going through and coming back. I guess my main question is what exactly what makes the NWUDPSession.isViable == true, which I am also guessing will make the VPN show as Connected in the settings and display the little VPN notification at the top of the screen. All I can get from the API, and handle in the observer, is that the NWUDPSessionState becomes ready, but isViable always == false. What event(s) or trigger(s) has to happen to make NWUDPSession.isViable become true? The extent of the documentation is that isViable, readonly, is: The viability of a UDP session represents whether or not data can be transferred. And the NWUDPSessionState ready is: The session is ready for reading and writing data.
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’21