macOS: Use tunnelOverheadBytes for automatic MTU in macOS

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander 2019-01-16 01:51:50 +05:30
parent e29cf19fdd
commit f63c9fd598
1 changed files with 8 additions and 4 deletions

View File

@ -70,7 +70,7 @@ class PacketTunnelSettingsGenerator {
dnsSettings.matchDomains = [""] // All DNS queries must first go through the tunnel's DNS
networkSettings.dnsSettings = dnsSettings
var mtu = tunnelConfiguration.interface.mtu ?? 0
let mtu = tunnelConfiguration.interface.mtu ?? 0
/* 0 means automatic MTU. In theory, we should just do
* `networkSettings.tunnelOverheadBytes = 80` but in
@ -79,11 +79,15 @@ class PacketTunnelSettingsGenerator {
* add a nob, maybe, or iOS will do probing for us.
*/
if mtu == 0 {
mtu = 1280
#if os(iOS)
networkSettings.mtu = NSNumber(value: 1280)
#elseif os(OSX)
networkSettings.tunnelOverheadBytes = 80
#endif
} else {
networkSettings.mtu = NSNumber(value: mtu)
}
networkSettings.mtu = NSNumber(value: mtu)
let (ipv4Routes, ipv6Routes) = routes()
let (ipv4IncludedRoutes, ipv6IncludedRoutes) = includedRoutes()