diff options
Diffstat (limited to 'Sources/WireGuardKit/InterfaceConfiguration.swift')
-rw-r--r-- | Sources/WireGuardKit/InterfaceConfiguration.swift | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Sources/WireGuardKit/InterfaceConfiguration.swift b/Sources/WireGuardKit/InterfaceConfiguration.swift new file mode 100644 index 0000000..d99d969 --- /dev/null +++ b/Sources/WireGuardKit/InterfaceConfiguration.swift @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018-2023 WireGuard LLC. All Rights Reserved. + +import Foundation +import Network + +public struct InterfaceConfiguration { + public var privateKey: PrivateKey + public var addresses = [IPAddressRange]() + public var listenPort: UInt16? + public var mtu: UInt16? + public var dns = [DNSServer]() + public var dnsSearch = [String]() + + public init(privateKey: PrivateKey) { + self.privateKey = privateKey + } +} + +extension InterfaceConfiguration: Equatable { + public static func == (lhs: InterfaceConfiguration, rhs: InterfaceConfiguration) -> Bool { + let lhsAddresses = lhs.addresses.filter { $0.address is IPv4Address } + lhs.addresses.filter { $0.address is IPv6Address } + let rhsAddresses = rhs.addresses.filter { $0.address is IPv4Address } + rhs.addresses.filter { $0.address is IPv6Address } + + return lhs.privateKey == rhs.privateKey && + lhsAddresses == rhsAddresses && + lhs.listenPort == rhs.listenPort && + lhs.mtu == rhs.mtu && + lhs.dns == rhs.dns && + lhs.dnsSearch == rhs.dnsSearch + } +} |