Commit Graph

14 Commits

Author SHA1 Message Date
Davide De Rosa 6101e92c3b
Add tvOS support
- Upgrade OpenSSL for tvOS Simulator on arm64
- Use own WireGuard fork on develop

Closes #337
2023-12-27 17:28:02 +01:00
Davide De Rosa 729e8973cf
Hide errors behind façade TunnelKit*Error (#325) 2023-07-02 11:56:40 +02:00
Davide De Rosa 0c77062add
Add SwiftLint (#318) 2023-04-20 21:52:45 +02:00
Davide De Rosa c62fc4adaa
Drop #available(iOS 14) (#317) 2023-04-20 21:44:32 +02:00
Davide De Rosa d7fbeb0d90 Update copyright 2023-03-17 16:58:36 +01:00
Davide De Rosa 47281cafc9 Move kill switch to configuration extras 2022-11-10 07:11:57 +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 65c41c257b
Unify logging of local/remote options (#295) 2022-10-27 00:40:46 +02:00
Davide De Rosa 9f5de0fc55 Fix misplaced tab 2022-09-30 21:43:33 +02:00
Davide De Rosa 64b3fa47af Add some missing documentation 2022-09-23 21:45:04 +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 3741a17c20 Rewrite Manager package to make it stateless
In order to avoid chaos from multiple profiles, retain the
profile to be installed and remove all the other ones. Also,
make sure to do the removal AFTER install, as doing it
before would trigger the VPN permission alert again.

XXX: there is some weird behavior from NetworkExtension
occasionally sending notifications with a bogus NEVPNManager
object having a nil .localizedDescription and other properties set
to nonsensical values. Discard the notification when such an object
is identified.

Encapsulate extra NetworkExtension settings:

- passwordReference
- onDemandRules
- disconnectsOnSleep

Also:

- Only set on-demand if any rules are set
- Assume VPN is enabled even with on-demand disabled
- Use DataCount instead of raw Int pair

Attach useful information to VPN notifications:

- VPN isEnabled
- VPN status
- VPN command error
- Tunnel bundle identifier (if available)

Expose specific OpenVPN/WireGuard shared data via extensions in
UserDefaults/FileManager.

Finally, drop incomplete IKE support. No fit.
2022-03-12 10:35:39 +01:00