Andrej Mihajlov and Roopesh Chander
ac9f7b9f5e
UI: iOS: Show "on-demand is active" for tunnels with the active on-demand
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
Signed-off-by: Roopesh Chander <roop@roopc.net >
2021-07-28 03:18:02 +05:30
Andrej Mihajlov and Jason A. Donenfeld
c1f509d65b
Kit: add missing import for WireGuardKitC
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2021-06-17 15:15:41 +02:00
Andrej Mihajlov and Jason A. Donenfeld
820fa55380
SPM: update exclude rules
...
Fixes missing excluded file warning in Xcode. api-ios.go was renamed to api-apple.go.
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2021-06-16 15:23:11 +02:00
Andrej Mihajlov and Jason A. Donenfeld
6c4f4109eb
UI: iOS: Disable "copy" action on on-demand cells
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2021-01-11 13:09:41 +01:00
Andrej Mihajlov and Jason A. Donenfeld
e724c043d9
UI: iOS: Remove duplicate call to addSubview
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-23 16:14:03 +01:00
Andrej Mihajlov and Jason A. Donenfeld
491301f58b
UI: iOS: Fix placeholder label alignment in text fields.
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-23 16:14:03 +01:00
Andrej Mihajlov and Jason A. Donenfeld
e54a5d9a13
UI: macOS: Group more than 10 tunnels into submenu
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-23 14:40:54 +01:00
Andrej Mihajlov and Jason A. Donenfeld
6d57c8b6f9
UI: Avoid force unwrap when checking for errors
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-23 14:17:59 +01:00
Andrej Mihajlov and Jason A. Donenfeld
373bb2ae99
UI: pause VPN configurations observer while adding or removing multiple tunnels
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-22 12:47:02 +01:00
Andrej Mihajlov and Jason A. Donenfeld
631286e2d1
UI: use NotificationToken to properly clean up observers
...
When the variable goes out of scope, the observer isn't removed unless
an explicit call is made to the token.
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-22 12:46:30 +01:00
Andrej Mihajlov and Jason A. Donenfeld
74cd7041dc
Keychain: prevent call to stat() when determining appex path
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-22 12:46:14 +01:00
Andrej Mihajlov and Jason A. Donenfeld
9269c7c1c1
UI: macOS: Fix UTF-8 and UTF-16 conversions in highlighter code
...
NSString uses UTF-16 internally, while String uses UTF-8 in Swift 5.
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-17 17:36:46 +01:00
Andrej Mihajlov and Jason A. Donenfeld
b622fde291
build: disable hardened runtime on iOS but keep it enabled on macOS
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-17 11:58:50 +01:00
Andrej Mihajlov and Jason A. Donenfeld
be96dea04a
WireGuardApp: Refactor TunnelListCell
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
a786f5df60
WireGuardApp: Replace AnyObject with a concrete NSKeyValueObservation
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
9a483a46fa
WireGuardApp: Animate switch control in TunnelListCell
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
5d2a337332
WireGuardApp: Remove 200ms delay when updating tunnel status switch
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
facf776602
WireGuardApp: Pin status switch to cell margin
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
d3400e3a80
WireGuardApp: Refactor indicator view initialization
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
92517bd21e
WireGuardApp: Use Bundle.forInfoDictionaryKey to access Info.plist fields
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
761f635e16
WireGuardApp: Refactor indicator initialization
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
44704ba892
WireGuardApp: Fix window background color to default black
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-15 15:56:22 +01:00
Andrej Mihajlov and Jason A. Donenfeld
d414cec9aa
WireGuardKit: Let wireguard-go backend run in offline on macOS
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-11 11:56:05 +01:00
Andrej Mihajlov
9f8d0e24df
WireGuardKit: Conditionally turn on/off wireguard-go
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-11 11:15:22 +01:00
Andrej Mihajlov
27ef0c6dba
WireGuardApp: Update target membership to exclude sources that are only used in network extensions
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-04 11:50:44 +01:00
Andrej Mihajlov
8f67435d4a
WireGuardKit: Delegate IPv*Address initialization to self.init
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-04 11:50:44 +01:00
Andrej Mihajlov
b4ebe2440f
WireGuardApp: Remove backend version call in Logger.swift & extract wireguard-go version script from network extension targets
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
2020-12-04 11:50:44 +01:00
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
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
Andrej Mihajlov and Jason A. Donenfeld
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 and Jason A. Donenfeld
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 and Jason A. Donenfeld
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
Andrej Mihajlov and Jason A. Donenfeld
35300d1c5f
Refactor interface name query
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2020-06-25 17:50:03 -06:00
Andrej Mihajlov and Jason A. Donenfeld
30406dec6d
wireguard-go-bridge: use C string instead of gostring_t
...
Signed-off-by: Andrej Mihajlov <and@mullvad.net >
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com >
2020-02-07 22:35:57 +01:00