Andrej Mihajlov
d440a91b0e
WireGuardKit: Log XLAT resolution errors
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 11:50:43 +01:00
Andrej Mihajlov
9e909a3294
WireGuardApp: Disable SWIFT_PRECOMPILE_BRIDGING_HEADER
...
Clang automatically picks up module.modulemap files from WireGuardKit directories when precompiling bridging header file, which causes the compiler to fail with obscure error.
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
75bcf97ab2
WireGuardApp: Update swift version from 4.2 to 5.0
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
0edde8b46f
Update checkout path in README
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
bcc34e0bb6
Keychain: Avoid roundtrip via items when accessing item label (stored in kSecAttrLabel)
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
90b41aed89
Keychain: Remove unnecessary cast to String in Keychain queries
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
7930b94981
WireGuardApp: Remove WireGuardKit.swift from Xcode source tree
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
54a89f6a0e
WireGuadKit: Rename WireGuardAdapter.version -> .backendVersion & remove `var wireGuardVersion` with WireGuardKit.swift
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:09 +01:00
Andrej Mihajlov
8976a53b05
WireGuardApp: Add back the wireguard-go version extraction script and use WIREGUARD_GO_VERSION directly
...
Avoids linking against libwg-go.a in order to access the WireGuard backend version.
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:39:05 +01:00
Andrej Mihajlov
9849dedf1d
WireGuardApp: Include headers from WireGuardKitC
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-04 09:38:31 +01:00
Andrej Mihajlov
547077a808
WireGuardApp: integrate WireGuardKit sources directly
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
0b0898dc3c
Remove Sources/ in project folder names
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
9f9d1ffed8
WireGuardKit: Rename WireGuardKitSwift -> WireGuardKit
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
5a044e4129
Linter: Fix all linter issues across the codebase
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
35f0ada8a9
WireGuardApp: Fix build working dir for go-bridge targets
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
39e7ee07ac
WireGuardNetworkExtension: Remove wireguard.h from bridging header
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
5a1c9598f1
Fix paths pointing to xcconfigs
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
101a45b6f1
WireGuardKit: Add wireguard-go files to exclude list to eliminate SwiftPM warnings
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:25 +01:00
Andrej Mihajlov
fd527f73e6
WireGuardKit: Set publicHeadersPath = "." to flatten public headers structure
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:24 +01:00
Andrej Mihajlov
de6aa3eb58
WireGuardKit: Fix module map for WireGuardKitC
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:24 +01:00
Andrej Mihajlov
c9eafd82ac
WireGuardKit: Fix import statements
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:24 +01:00
Andrej Mihajlov
ec57408570
Move all source files to `Sources/` and rename WireGuardKit targets
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:32:24 +01:00
Andrej Mihajlov
9c38a1b897
WireGuardKit: Assert that resolutionResults must not contain failures
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
b34625f511
WireGuardKit: Only assign self.settingsGenerator upon success to set tunnel network settings to avoid inconsistent state
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
2e356d3d8f
WireGuardKit: Remove handleLogLine from WireGuardAdapter
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
697d449dc8
WireGuardKit: Remove isStarted: bool from WireGuardAdapter
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
4f9f61f7a7
WireGuardKit: Fix docs for WireGuardAdapterError
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
bceb0a827d
WireGuardKit: Fix docs for WireGuardLogLevel
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
2329f712cf
WireGuardKit: Pass logHandler via constructor
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
d2c38702c8
Packet tunnel: Remove last error in the completion handler given to adapter.stop
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
def921801f
WireGuardKit: Rename cannotLocateSocketDescriptor -> cannotLocateTunnelFileDescriptor in WireGuardAdapterError
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
41e006a407
WireGuardApp: Switch WireGuardKit to master branch
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
384b514290
WireGuardKit: Add TODO to log the error coming from `withReresolvedIP`
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
a6858bd126
WireGuardKit: Change getWireGuardVersion() -> wireGuardVersion
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
ef7de2500f
Update README
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-03 13:22:52 +01:00
Andrej Mihajlov
6099975b71
Packet tunnel: Implement packet tunnel provider using WireGuardAdapter
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:09 +01:00
Andrej Mihajlov
828756e8ba
WireGuardKit: Add WireGuardAdapter
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:09 +01:00
Andrej Mihajlov
4deaf905c1
WireGuardKit: Add wrappers for PrivateKey, PublicKey, PreSharedKey
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:09 +01:00
Andrej Mihajlov
76c8487a56
iOS/macOS: Remove "Extract wireguard-go version" build phase
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:09 +01:00
Andrej Mihajlov
a05f1233f9
iOS/macOS: Remove main bundle apps dependence on WireGuardgoBridge.
...
Main bundle apps do not have to depend on WireGuardGoBridge<PLATFORM> as they depend on network extnesions which in turn depend on WireGuardGoBridge<PLATFORM>.
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Andrej Mihajlov
95b833c754
iOS/macOS: Integrate WireGuardKit
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Jason A. Donenfeld
8c057bf928
go-bridge: Add context support for wgSetLogger
...
Cherry picked cda99bf45c3cb95ca56204549689a0ae91ff4813 from jd/loggerCtx with the fix for wgSetLogger signature in the C header file.
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Andrej Mihajlov
ddf8ade9c6
WireGuardKit: Add WireGuardKitCTarget with private C sources
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Andrej Mihajlov
4cb21b5eb0
WireGuardKit: Set public access level for shared structs
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Andrej Mihajlov
a03df7d8cc
WireGuardKit: Move shared structs to WireGuardKit
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Andrej Mihajlov
57f66f16f8
WireGuardKit: Add swift package scaffolding
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
2020-12-02 11:08:08 +01:00
Jason A. Donenfeld
737f847c0d
go-bridge: dup tunFd so as to not confuse NetworkExtension
...
The extension isn't banking on tunFd being closed ever, so dup it before
handing it to the rest of wireguard-go.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-02 17:21:37 +02:00
Andrej Mihajlov
671a594945
Change QoS to .utility
...
As per comment by eskimo:
https://developer.apple.com/forums/thread/107904?answerId=328525022#328525022
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-25 17:50:15 -06:00
Andrej Mihajlov
3646430528
Make sure that the tunnel and path monitor run on the same serial queue
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-25 17:50:15 -06:00
Andrej Mihajlov
e9bd6e576f
Fix retain cycle between NWPathMonitor and PacketTunnelProvider
...
See: https://www.marisibrothers.com/2017/04/memory-leak-in-swift-assigning-function.html
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-25 17:50:15 -06:00