mirror of
https://github.com/passepartoutvpn/wireguard-apple.git
synced 2025-02-15 04:12:03 +00:00
Rather than hoping that the AF_SYSTEM fd is of type utun, and then calling "2" on it to get the name -- which could be defined as something else for a different AF_SYSTEM socket type -- instead simply query the AF_SYSTEM control socket ID with getpeername. This has one catch, which is that the ID is dynamically allocated, so we resolve it using the qualified name. Normally we'd make a new AF_SYSTEM socket for this, but since that's not allowed in the sandbox, we reuse the AF_SYSTEM socket that we're checking. At this point in the flow, we know that it's a proper AF_SYSTEM one, based on the first sockaddr member; we just don't know that it's a utun variety. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
||
---|---|---|
.. | ||
Array+ConcurrentMap.swift | ||
DNSResolver.swift | ||
DNSServer.swift | ||
Endpoint.swift | ||
InterfaceConfiguration.swift | ||
IPAddress+AddrInfo.swift | ||
IPAddressRange.swift | ||
PacketTunnelSettingsGenerator.swift | ||
PeerConfiguration.swift | ||
PrivateKey.swift | ||
TunnelConfiguration.swift | ||
WireGuardAdapter.swift |