Support DoH/DoT network settings in WireGuard profiles (#264)

This commit is contained in:
Davide De Rosa 2023-03-19 08:41:51 +01:00 committed by GitHub
parent 17ae9793df
commit 8d0fb5c9b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 27 additions and 16 deletions

View File

@ -13,9 +13,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Ukranian translations (Dmitry Chirkin). [#243](https://github.com/passepartoutvpn/passepartout-apple/pull/243) - Ukranian translations (Dmitry Chirkin). [#243](https://github.com/passepartoutvpn/passepartout-apple/pull/243)
- Restore DNS "Domain" setting. [#260](https://github.com/passepartoutvpn/passepartout-apple/pull/260) - Restore DNS "Domain" setting. [#260](https://github.com/passepartoutvpn/passepartout-apple/pull/260)
- OpenVPN: Full implementation of Tunnelblick XOR patch (tmthecoder). [#245](https://github.com/passepartoutvpn/passepartout-apple/pull/245), [tunnelkit#255][https://github.com/passepartoutvpn/tunnelkit/pull/255] - OpenVPN: Full implementation of Tunnelblick XOR patch (tmthecoder). [#245](https://github.com/passepartoutvpn/passepartout-apple/pull/245), [tunnelkit#255][https://github.com/passepartoutvpn/tunnelkit/pull/255]
- WireGuard: DoH/DoT options. [#264](https://github.com/passepartoutvpn/passepartout-apple/pull/264)
### Changed ### Changed
- Bump targets to iOS 15 / macOS 12.
- Move Diagnostics view to Profile bottom. [#261](https://github.com/passepartoutvpn/passepartout-apple/pull/261) - Move Diagnostics view to Profile bottom. [#261](https://github.com/passepartoutvpn/passepartout-apple/pull/261)
### Fixed ### Fixed

View File

@ -1756,8 +1756,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MACOSX_DEPLOYMENT_TARGET = 11.0; MACOSX_DEPLOYMENT_TARGET = 12.0;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
@ -1817,8 +1817,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MACOSX_DEPLOYMENT_TARGET = 11.0; MACOSX_DEPLOYMENT_TARGET = 12.0;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;

View File

@ -51,7 +51,7 @@
"repositoryURL": "https://github.com/passepartoutvpn/tunnelkit", "repositoryURL": "https://github.com/passepartoutvpn/tunnelkit",
"state": { "state": {
"branch": null, "branch": null,
"revision": "e0c0cc137fbceea6970d226445afa79a7903881c", "revision": "7ce254be0293ba7e1eeda07a3701804de59f7490",
"version": null "version": null
} }
}, },
@ -60,8 +60,8 @@
"repositoryURL": "https://github.com/passepartoutvpn/wireguard-apple", "repositoryURL": "https://github.com/passepartoutvpn/wireguard-apple",
"state": { "state": {
"branch": null, "branch": null,
"revision": "d3b8f1ac6f3361d69bd3daf8aee3c43012c6ec0b", "revision": "73d9152fa0cb661db0348a1ac11dbbf998422a50",
"version": "1.0.16" "version": null
} }
} }
] ]

View File

@ -1,4 +1,4 @@
// swift-tools-version:5.3 // swift-tools-version:5.5
// The swift-tools-version declares the minimum version of Swift required to build this package. // The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription import PackageDescription
@ -6,7 +6,7 @@ import PackageDescription
let package = Package( let package = Package(
name: "PassepartoutLibrary", name: "PassepartoutLibrary",
platforms: [ platforms: [
.iOS(.v14), .macOS(.v11) .iOS(.v15), .macOS(.v12)
], ],
products: [ products: [
// Products define the executables and libraries a package produces, and make them visible to other packages. // Products define the executables and libraries a package produces, and make them visible to other packages.
@ -24,7 +24,7 @@ let package = Package(
// Dependencies declare other packages that this package depends on. // Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"), // .package(url: /* package url */, from: "1.0.0"),
// .package(name: "TunnelKit", url: "https://github.com/passepartoutvpn/tunnelkit", from: "5.0.0"), // .package(name: "TunnelKit", url: "https://github.com/passepartoutvpn/tunnelkit", from: "5.0.0"),
.package(name: "TunnelKit", url: "https://github.com/passepartoutvpn/tunnelkit", .revision("e0c0cc137fbceea6970d226445afa79a7903881c")), .package(name: "TunnelKit", url: "https://github.com/passepartoutvpn/tunnelkit", .revision("7ce254be0293ba7e1eeda07a3701804de59f7490")),
// .package(name: "TunnelKit", path: "../../tunnelkit"), // .package(name: "TunnelKit", path: "../../tunnelkit"),
.package(url: "https://github.com/zoul/generic-json-swift", from: "2.0.0"), .package(url: "https://github.com/zoul/generic-json-swift", from: "2.0.0"),
.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver", from: "1.9.0") .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver", from: "1.9.0")
@ -47,12 +47,18 @@ let package = Package(
name: "PassepartoutProfiles", name: "PassepartoutProfiles",
dependencies: [ dependencies: [
"PassepartoutProviders" "PassepartoutProviders"
],
resources: [
.process("DataModels/Profiles.xcdatamodeld")
]), ]),
.target( .target(
name: "PassepartoutProviders", name: "PassepartoutProviders",
dependencies: [ dependencies: [
"PassepartoutCore", "PassepartoutCore",
"PassepartoutServices" "PassepartoutServices"
],
resources: [
.process("DataModels/Providers.xcdatamodeld")
]), ]),
.target( .target(
name: "PassepartoutCore", name: "PassepartoutCore",

View File

@ -46,11 +46,11 @@ extension Profile.WireGuardSettings: DNSSettingsProviding {
} }
public var dnsHTTPSURL: URL? { public var dnsHTTPSURL: URL? {
nil configuration.dnsHTTPSURL
} }
public var dnsTLSServerName: String? { public var dnsTLSServerName: String? {
nil configuration.dnsTLSServerName
} }
} }

View File

@ -34,7 +34,7 @@ extension Network.DNSSettings {
return [.plain, .https, .tls, .disabled] return [.plain, .https, .tls, .disabled]
case .wireGuard: case .wireGuard:
return [.plain, .disabled] return [.plain, .https, .tls, .disabled]
} }
} }
} }

View File

@ -104,12 +104,15 @@ extension WireGuard.ConfigurationBuilder {
} }
dnsSearchDomains = allDomains.filter { !$0.isEmpty } dnsSearchDomains = allDomains.filter { !$0.isEmpty }
case .https:
dnsHTTPSURL = settings.dnsHTTPSURL
case .tls:
dnsTLSServerName = settings.dnsTLSServerName
case .disabled: case .disabled:
dnsServers = [] dnsServers = []
dnsSearchDomains = [] dnsSearchDomains = []
default:
fatalError("Invalid DNS configuration for WireGuard: \(settings.configurationType)")
} }
} }
} }