diff options
author | Eric Kuck <eric@bluelinelabs.com> | 2018-12-21 22:41:54 -0600 |
---|---|---|
committer | Eric Kuck <eric@bluelinelabs.com> | 2018-12-21 22:57:17 -0600 |
commit | 0bec5b04b0b76fef7eeafc6609ffa05c61117df8 (patch) | |
tree | 25792a2b8448d529867fd4a8f9370dddf258177a /WireGuard/Shared/Model/InterfaceConfiguration.swift | |
parent | Clean up trailing whitespace (diff) | |
download | wireguard-apple-0bec5b04b0b76fef7eeafc6609ffa05c61117df8.tar.xz wireguard-apple-0bec5b04b0b76fef7eeafc6609ffa05c61117df8.zip |
All models now Equatable
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
Diffstat (limited to 'WireGuard/Shared/Model/InterfaceConfiguration.swift')
-rw-r--r-- | WireGuard/Shared/Model/InterfaceConfiguration.swift | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/WireGuard/Shared/Model/InterfaceConfiguration.swift b/WireGuard/Shared/Model/InterfaceConfiguration.swift index ef33907..e28046b 100644 --- a/WireGuard/Shared/Model/InterfaceConfiguration.swift +++ b/WireGuard/Shared/Model/InterfaceConfiguration.swift @@ -2,6 +2,7 @@ // Copyright © 2018 WireGuard LLC. All Rights Reserved. import Foundation +import Network struct InterfaceConfiguration { var privateKey: Data @@ -17,3 +18,16 @@ struct InterfaceConfiguration { self.privateKey = privateKey } } + +extension InterfaceConfiguration: Equatable { + 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 + } +} |