Reuse native WireGuard error as ConfigurationError (#316)

There was a duplicate ConfigurationError.
This commit is contained in:
Davide De Rosa 2023-04-02 23:42:05 +02:00 committed by GitHub
parent ac362f90ef
commit 422f3163d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 16 deletions

View File

@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Fixed
- WireGuard: Return native parsing errors from WireGuardKit. [#316](https://github.com/passepartoutvpn/tunnelkit/pull/316)
## 6.0.0 (2023-04-01)
### Added

View File

@ -26,17 +26,9 @@
import Foundation
import WireGuardKit
public struct ConfigurationError: Error {
let parseError: TunnelConfiguration.ParseError
}
extension WireGuard.Configuration {
public init(wgQuickConfig: String) throws {
do {
tunnelConfiguration = try TunnelConfiguration(fromWgQuickConfig: wgQuickConfig)
} catch let parseError as TunnelConfiguration.ParseError {
throw ConfigurationError(parseError: parseError)
}
}
public func asWgQuickConfig() -> String {

View File

@ -77,7 +77,7 @@ extension WireGuard {
public init(_ base64PrivateKey: String) throws {
guard let privateKey = PrivateKey(base64Key: base64PrivateKey) else {
throw WireGuard.ConfigurationError.invalidKey
throw WireGuard.ConfigurationError.interfaceHasInvalidPrivateKey(base64PrivateKey)
}
self.init(privateKey)
}
@ -164,7 +164,7 @@ extension WireGuard {
public mutating func addPeer(_ base64PublicKey: String, endpoint: String, allowedIPs: [String] = []) throws {
guard let publicKey = PublicKey(base64Key: base64PublicKey) else {
throw WireGuard.ConfigurationError.invalidKey
throw WireGuard.ConfigurationError.peerHasInvalidPublicKey(base64PublicKey)
}
var peer = PeerConfiguration(publicKey: publicKey)
peer.endpoint = Endpoint(from: endpoint)
@ -174,7 +174,7 @@ extension WireGuard {
public mutating func setPreSharedKey(_ base64Key: String, ofPeer peerIndex: Int) throws {
guard let preSharedKey = PreSharedKey(base64Key: base64Key) else {
throw WireGuard.ConfigurationError.invalidKey
throw WireGuard.ConfigurationError.peerHasInvalidPreSharedKey(base64Key)
}
peers[peerIndex].preSharedKey = preSharedKey
}

View File

@ -24,9 +24,8 @@
//
import Foundation
import WireGuardKit
extension WireGuard {
public enum ConfigurationError: Error {
case invalidKey
}
public typealias ConfigurationError = TunnelConfiguration.ParseError
}

View File

@ -13,7 +13,7 @@ extension TunnelConfiguration {
case notInASection
}
enum ParseError: Error {
public enum ParseError: Error {
case invalidLine(String.SubSequence)
case noInterface
case multipleInterfaces