diff options
Diffstat (limited to '')
-rw-r--r-- | WireGuard/Shared/NETunnelProviderProtocol+Extension.swift | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/WireGuard/Shared/NETunnelProviderProtocol+Extension.swift b/WireGuard/Shared/NETunnelProviderProtocol+Extension.swift index 960bf22..9f4af77 100644 --- a/WireGuard/Shared/NETunnelProviderProtocol+Extension.swift +++ b/WireGuard/Shared/NETunnelProviderProtocol+Extension.swift @@ -4,7 +4,7 @@ import NetworkExtension extension NETunnelProviderProtocol { - convenience init?(tunnelConfiguration: TunnelConfiguration) { + convenience init?(tunnelConfiguration: TunnelConfiguration, isActivateOnDemandEnabled: Bool) { assert(!tunnelConfiguration.interface.name.isEmpty) guard let serializedTunnelConfiguration = try? JSONEncoder().encode(tunnelConfiguration) else { return nil } @@ -14,7 +14,8 @@ extension NETunnelProviderProtocol { providerBundleIdentifier = "\(appId).network-extension" providerConfiguration = [ "tunnelConfiguration": serializedTunnelConfiguration, - "tunnelConfigurationVersion": 1 + "tunnelConfigurationVersion": 1, + "isActivateOnDemandEnabled": isActivateOnDemandEnabled ] let endpoints = tunnelConfiguration.peers.compactMap {$0.endpoint} @@ -32,4 +33,8 @@ extension NETunnelProviderProtocol { guard let serializedTunnelConfiguration = providerConfiguration?["tunnelConfiguration"] as? Data else { return nil } return try? JSONDecoder().decode(TunnelConfiguration.self, from: serializedTunnelConfiguration) } + + var isActivateOnDemandEnabled: Bool { + return (providerConfiguration?["isActivateOnDemandEnabled"] as? Bool) ?? false + } } |