Davide De Rosa
47281cafc9
Move kill switch to configuration extras
2022-11-10 07:11:57 +01:00
Tejas Mehta
5ecd732cc2
Add Complete XOR Patch Functionality ( #255 )
...
Co-authored-by: Davide De Rosa <keeshux@gmail.com>
2022-11-06 17:46:10 +01:00
Davide De Rosa
e225ca15ff
Prefix local options output in OpenVPN provider
...
Lost in the refactoring.
2022-11-02 20:50:34 +01:00
Davide De Rosa
0d21731e12
Set includeAllNetworks for best-effort kill switch ( #300 )
...
* Update CHANGELOG
* Make kill switch an option
2022-10-30 09:07:17 +01:00
Davide De Rosa
a3b85430fd
Unmask more safe things
...
- IPv4/6 address and default gateway within VPN
- Route destination and gateway
2022-10-29 20:29:36 +02:00
Davide De Rosa
6b42048d6a
Drop leftover TODO
2022-10-29 20:24:29 +02:00
Davide De Rosa
cae371bb40
Split IPv4/6 settings and routes ( #298 )
...
* Postpone setting route gateway
Resolve in NetworkSettingsBuilder.
* Store routes separately from IP*Settings
Parse as optionals to avoid empty arrays.
* Deprecate routes stored in IP*Settings
* Apply routes from new fields
* Update CHANGELOG
2022-10-29 12:24:28 +02:00
Davide De Rosa
703d1416ad
Deal with remote options properly ( #297 )
...
Some take over, some are merged.
Also:
- Drop non-existing DOMAIN-SEARCH dhcp-option
- Only first DNS domain was parsed
2022-10-29 11:00:39 +02:00
Davide De Rosa
8ac21771e3
Fix default gateway not set when --route-nopull
...
The "no pull" flag is already accounted for when routingPolicies is
computed (e.g. default gateway). Evaluate it properly for routes
instead.
See 31db8ebb9d
2022-10-28 15:38:29 +02:00
Davide De Rosa
65c41c257b
Unify logging of local/remote options ( #295 )
2022-10-27 00:40:46 +02:00
Davide De Rosa
fa5aa86399
Use keypath in .map occurrences
2022-10-27 00:37:24 +02:00
Davide De Rosa
5913b801a9
Simplify hasGateway check
2022-10-27 00:23:57 +02:00
Davide De Rosa
7b6aca479b
Fix dumb regression on endpoint address
...
Was only parsing IPv4/6 addresses, not generic hostnames.
2022-10-26 19:02:46 +02:00
Davide De Rosa
7659057888
Parse IPv6 enpdoints properly ( #294 )
...
* Fix incorrect parsing of IPv6 address in endpoint
* Use better names for space-based regex extensions
2022-10-25 11:29:36 +02:00
Davide De Rosa
31db8ebb9d
Delegate network settings to ad-hoc builder ( #292 )
...
* Delegate network settings to ad-hoc builder
- Assert network settings nil or non-empty, NOT precondition
- Fix log about local DNS, only if not gateway
- Remove non-working block-local code
Fixes #289 , fixes #290
* Unmask safe and helpful network settings
2022-10-25 08:58:34 +02:00
Davide De Rosa
17c272d733
Support --remote-random-hostname ( #286 )
2022-10-17 09:00:23 +02:00
Davide De Rosa
769a79c4c0
Refine mock VPN actions and events
2022-10-15 08:44:39 +02:00
Davide De Rosa
36f0b2c03d
Extend description of link remote with protocol
2022-10-14 08:23:23 +02:00
Davide De Rosa
f17bb110c2
Adjust log of DNS settings according to gateway
2022-10-13 18:34:31 +02:00
Davide De Rosa
192f4643c2
Fix mock VPN implementation ( #285 )
2022-10-12 22:35:02 +02:00
Davide De Rosa
080ee35e61
Replace continuations with natively async methods ( #284 )
2022-10-12 22:28:33 +02:00
Davide De Rosa
a3822678cf
Support --route-nopull ( #280 )
...
* Parse --route-no-pull
When provided, pull everything except:
- Routes
- DNS
- Proxy
Implement with higher granularity compared to OpenVPN.
* Apply no-pull mask in tunnel settings
Pull server settings by default to match standard OpenVPN
behavior. Library was prioritizing client over server.
* Add link in CHANGELOG
2022-10-08 08:54:55 +02:00
Davide De Rosa
9f5de0fc55
Fix misplaced tab
2022-09-30 21:43:33 +02:00
Davide De Rosa
5c84c15416
Use localOptions to clarify context
...
localOptions = cfg.configuration
2022-09-25 17:23:13 +02:00
Davide De Rosa
6018c30cc4
Add fallback for compression algorithm
2022-09-23 23:01:57 +02:00
Davide De Rosa
64b3fa47af
Add some missing documentation
2022-09-23 21:45:04 +02:00
Davide De Rosa
6dc1140d5b
Revert "Work around segfault in Xcode 13.3 "Release""
...
This reverts commit 02e702d97b
.
2022-09-23 16:11:37 +02:00
Davide De Rosa
0db3f52931
Add methods to remove WireGuard default gateways
2022-09-14 22:07:46 +02:00
Davide De Rosa
e2aaffc06f
Reconnect with current manager and configuration
2022-08-05 07:38:53 +02:00
Davide De Rosa
83a2842214
Customize app extension log path
...
Store path into App Group. Do not read it from UserDefaults in
app extension because value is immediately available in provider
configuration.
2022-06-17 09:19:54 +02:00
Davide De Rosa
4eb9a92c2e
Hide setters of shared provider defaults
...
Tunnel values were overwritable by app.
Instead:
- Write from app extension with "private" setter (_appexSet*)
- Read from app with public getter
2022-06-17 09:18:28 +02:00
Davide De Rosa
178dda56ac
Simplify .configureLogging() in app extensions
2022-06-17 09:16:41 +02:00
Davide De Rosa
6e0471a55b
Report vpnIsEnabled = false on install error
2022-04-27 15:44:40 +02:00
Davide De Rosa
e075ba6a76
Make DNS servers optional in DoT like in DoH
...
Domain name can actually by an IP address and not require a DNS
server to resolve.
2022-04-25 21:46:16 +02:00
Davide De Rosa
f0a5557cfb
Fix previous commit further (my bad)
2022-04-13 22:55:43 +02:00
Davide De Rosa
07e94b2d5c
Fix target name in import
2022-04-13 22:40:05 +02:00
Davide De Rosa
02e702d97b
Work around segfault in Xcode 13.3 "Release"
...
Surely some Xcode bug. Doesn't like NSCAssert in inline function.
2022-04-12 21:18:03 +02:00
Davide De Rosa
f33a854943
Fix broken == on OpenVPN.Configuration
...
StaticKey was not comparing data by value.
2022-04-07 00:16:34 +02:00
Davide De Rosa
02d04185d3
Drop redundant Hashable implementation
2022-04-06 23:47:12 +02:00
Davide De Rosa
e12e0b3051
Make VPN public methods async
...
- With Swift Concurrency
- Raise targets to iOS 13 / macOS 10.15
2022-04-06 11:18:06 +02:00
Davide De Rosa
46918a767a
Adjust current SSID to also support Catalyst
2022-04-06 09:31:33 +02:00
Davide De Rosa
6b54fd6124
Move Fallback into Configuration
2022-04-06 09:31:32 +02:00
Davide De Rosa
f046bcd629
Add options to explicitly enable/disable DNS/proxy
...
DNS/proxy settings, when missing from configuration, fall back to
whatever the server pushes.
With isDNSEnabled/isProxyEnabled it's now possible to override this
behavior.
2022-03-26 17:22:45 +01:00
Davide De Rosa
4bfa0b4e74
Make sure MTU is positive
2022-03-26 17:08:45 +01:00
Davide De Rosa
3bdff1ee8b
Customize WireGuard debug log format
2022-03-25 18:02:39 +01:00
Davide De Rosa
f1bdc8490c
Use "struct" in data models to leverage Equatable
...
This way Configuration objects can be compared for changes.
2022-03-25 18:02:21 +01:00
Davide De Rosa
f4508911aa
Refine Keychain class
...
- Require context (kSecAttrService)
- Support userDefined parameter (kSecAttrGeneric)
2022-03-21 17:28:44 +01:00
Davide De Rosa
155d01005c
Make Endpoint RawRepresentable
...
Can be convenient.
2022-03-18 18:40:58 +01:00
Davide De Rosa
007c64f2b4
Add DataUnit entity
2022-03-13 22:35:57 +01:00
Davide De Rosa
a7a7424257
Use WireGuardKit entities directly
...
No need to duplicate a well-written API.
- Offer convenience accessors in Configuration[Builder]
- Make Configuration init non-optional
Sanity checks are done in Builder with throws and decoded object
is always deemed valid.
2022-03-12 15:09:41 +01:00