macOS: Use tunnelOverheadBytes for automatic MTU in macOS

This commit is contained in:
Roopesh Chander 2019-01-16 01:51:50 +05:30
parent b6d159ac96
commit 670673cccc
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 dnsSettings.matchDomains = [""] // All DNS queries must first go through the tunnel's DNS
networkSettings.dnsSettings = dnsSettings 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 /* 0 means automatic MTU. In theory, we should just do
* `networkSettings.tunnelOverheadBytes = 80` but in * `networkSettings.tunnelOverheadBytes = 80` but in
@ -79,10 +79,14 @@ class PacketTunnelSettingsGenerator {
* add a nob, maybe, or iOS will do probing for us. * add a nob, maybe, or iOS will do probing for us.
*/ */
if mtu == 0 { 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 (ipv4Routes, ipv6Routes) = routes()
let (ipv4IncludedRoutes, ipv6IncludedRoutes) = includedRoutes() let (ipv4IncludedRoutes, ipv6IncludedRoutes) = includedRoutes()