Commit Graph

1018 Commits

Author SHA1 Message Date
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 36d61c3da5 Enable data count in Demo
It is off by default.

Closes #287
2022-10-28 16:21:34 +02:00
Davide De Rosa e5f4f284fb Replace TunnelBear with ProtonVPN in Demo 2022-10-28 16:10:16 +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 195f885ee4 Fix README about vpn_gateway
It is actually supported.
2022-10-17 14:59:46 +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 8df7e90c95 Update CHANGELOG 2022-10-12 22:39:21 +02:00
Davide De Rosa 3a54295ed9 Update resolved packages (OpenSSL) 2022-10-12 22:36:09 +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 a3c991a25f Update a few things about license
- Copyright in LICENSE

- Note about custom licenses in README
2022-09-30 21:28:27 +02:00
Davide De Rosa a5ad04a0a6 Upgrade OpenSSL to 1.1.1q 2022-09-30 21:28:27 +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 ca378c4999
[ci skip] Set release date 2022-09-23 19:51:37 +00:00
Davide De Rosa 64b3fa47af Add some missing documentation 2022-09-23 21:45:04 +02:00
Davide De Rosa 000fde0aa2 Update CHANGELOG 2022-09-23 16:16:48 +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 36ed23ccc4 Bump to OpenSSL 1.1.1o 2022-06-17 10:06:03 +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 61227fcb35 Bump CI to macOS 12 2022-05-17 18:06:51 +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 469523cac5 Fix badges/requirements as per package targets 2022-04-16 10:40:18 +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 7b72114893 Fix missing async in Demo 2022-04-12 20:49:21 +02:00
Davide De Rosa 6e7eab421e Bump 3rd party copyrights 2022-04-12 18:03:31 +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 990a0b85a6 Use WireGuardKit fork with platform fixes
- iPhone Simulator
- Catalyst
2022-04-06 09:31:33 +02:00
Davide De Rosa 46918a767a Adjust current SSID to also support Catalyst 2022-04-06 09:31:33 +02:00