mirror of
https://github.com/passepartoutvpn/passepartout-apple.git
synced 2025-02-02 14:02:11 +00:00
60e3460966
NE link writes are blocking and don't support timeout. When shutting down a UDP session, the OCCPacket may fail to send and lock the session in a stale state ("Active" but dead), with an infinite loop of "Failed TUN read" messages in the log. - First, [add cancellation handlers to NE UDP/TCP sockets](https://github.com/passepartoutvpn/passepartoutkit-source/pull/464) - Then, rather than writing the exit packet in the foreground and scheduling cancellation: - Write the packet in a background task - Wait until timeout in the actor - Cancel the pending write and go ahead This may still leak if NE socket cancellation doesn't work, but will prevent deadlock. |
||
---|---|---|
.. | ||
App | ||
PassepartoutKit-Framework | ||
PassepartoutKit-Source@3258223286 | ||
PassepartoutOpenVPNOpenSSL | ||
PassepartoutWireGuardGo |