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,11 +79,15 @@ 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()