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:56 +05:30
parent e29cf19fdd
commit f63c9fd598
@@ -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()