Jason A. Donenfeld
8227e77111
Plist: Handle crypto export
2018-12-07 18:52:14 +01:00
Jason A. Donenfeld
f8f922eda9
Make strings consistent
2018-12-07 18:52:14 +01:00
Roopesh Chander
880ea9237e
State restoration: Restore tunnel detail view
2018-12-07 19:05:08 +05:30
Roopesh Chander
059fc77c61
Main VC: No need to refresh statuses if the tunnelsManager isn't initialized yet
2018-12-07 15:52:47 +05:30
Roopesh Chander
800cb8559e
Tunnels list: Deselect rows correctly
...
Do it like UITableViewController.clearsSelectionOnViewWillAppear would.
2018-12-07 12:36:23 +05:30
Roopesh Chander
c3a3effd82
Settings: Exporting configs as zip should open document picker
...
Because:
- Exporting UI should be consistent with importing UI
- UIActivityVC takes a long time to open
2018-12-07 12:36:19 +05:30
Roopesh Chander
24de510ea6
Error handling: Use ErrorPresenter.showErrorAlert() instead of per-VC showErrorAlert() methods
2018-12-07 12:36:19 +05:30
Roopesh Chander
cc39342e6e
Error handling: Use WireGuardAppError and WireGuardResult throughout the app
2018-12-07 12:36:19 +05:30
Roopesh Chander
8d58a79272
Error handling: Introduce a WireGuardResult type to handle errors in callbacks across the app
2018-12-07 12:36:19 +05:30
Roopesh Chander
5aee6f5753
Error handling: Introduce a WireGuardAppError protocol to manage errors
...
The alert strings shall be located next to where the errors are declared.
2018-12-07 12:36:19 +05:30
Roopesh Chander
80dcd2bd77
Error handling: Cleanup Tunnels Manager errors
2018-12-07 12:36:19 +05:30
Roopesh Chander
5ed47c5898
Error presenter: Always handle the passed error
2018-12-07 12:36:19 +05:30
Roopesh Chander
6cb5719d4e
Tunnel detail: Cell status switch should be toggled only after the alert presentation completes
2018-12-07 12:36:19 +05:30
Roopesh Chander
205585c5d4
Refactoring: Consolidate file deletion into a separate function
2018-12-07 12:36:19 +05:30
Roopesh Chander
5764fa4930
NE: Logging: Log file should begin with version numbers and tunnel name
2018-12-07 12:36:19 +05:30
Roopesh Chander
07fbb7c4ad
NE: Logging: Make it clear which calls to wg_log use String and which use StaticString
2018-12-04 15:58:53 +05:30
Roopesh Chander
fe3722fada
Settings: Add timestamp to exported log
...
And remove the exported log afterwards.
2018-12-04 14:12:53 +05:30
Roopesh Chander
400288b02a
Refactor out VPN-handling stuff from tunnels list VC to the main VC
2018-12-03 18:51:51 +05:30
Roopesh Chander
981b86d357
VPN: Error out when tunnel activation fails because there's no internet
2018-12-03 18:51:42 +05:30
Roopesh Chander
a1aa13d553
Settings: Export log file
2018-12-02 13:26:53 +05:30
Roopesh Chander
67268a0ce5
NE: Write log to file
2018-11-30 00:36:33 +05:30
Roopesh Chander
64175071fa
Info.plist: Add app group id for accessing from both the app and the network extension
2018-11-29 14:05:27 +05:30
Roopesh Chander
41aca352a7
Xcode: Add app groups capability
2018-11-29 12:01:45 +05:30
Roopesh Chander
5f6cd9d8b6
It's 'WiFi', not 'Wifi'
2018-11-28 12:41:35 +05:30
Roopesh Chander
ff64ef79f1
NE: All DNS queries must first go through the VPN's DNS servers
2018-11-23 13:04:55 +05:30
Roopesh Chander
af49397caa
Tunnel view model: Invalidate the configuration object when updating allowedIPs using the 'Exclude private IPs' switch
2018-11-19 15:22:27 +05:30
Roopesh Chander
643e988f74
Config file parser: Be case-insensitive to attribute keys in the config file
2018-11-19 12:37:54 +05:30
Roopesh Chander
ccd8e784f3
Config file parser: Fix typo
2018-11-17 22:52:37 +05:30
Roopesh Chander
b5689edf71
Exporting: Export to zip in a background thread
2018-11-15 13:39:56 +05:30
Roopesh Chander
6857a579b3
Exporting: Refactor out zip exporting into a separate class
2018-11-15 13:39:56 +05:30
Roopesh Chander
7f2772473e
Exporting: No need to check for duplicate names - we disallow it at creation time itself
2018-11-15 13:39:56 +05:30
Roopesh Chander
1a419526e7
Importing: Import from zip in a background thread
2018-11-15 13:39:56 +05:30
Roopesh Chander
b2b2818e2e
Importing: Refactor out zip importing into a separate class
2018-11-14 18:52:10 +05:30
Roopesh Chander
ed1bae8ad0
Tunnels manager: After saving after activating on-demand, reload tunnel
2018-11-14 13:02:53 +05:30
Roopesh Chander
6da2b4d0be
Tunnels manager: Need to keep VPN-on-demand tunnels's status under observation
...
Because they can turn on automatically, even while the app is in the foreground.
2018-11-12 19:24:13 +05:30
Roopesh Chander
8385e8d19e
Tunnel detail: Show VPN-on-demand information
2018-11-12 19:24:13 +05:30
Roopesh Chander
dc19529f10
Tunnels manager: Keep track of NETunnelProviderManager's isOnDemandEnabled property
2018-11-12 19:24:13 +05:30
Roopesh Chander
e708e26a00
Tunnel edit: Update for VPN-on-demand changes
2018-11-12 19:24:13 +05:30
Roopesh Chander
1caa186ebc
Tunnel view model: VPN-on-demand stuff shouldn't be part of the tunnel model
2018-11-12 19:24:13 +05:30
Roopesh Chander
c0eb34c755
Model, Tunnels manager: Rewrite the model for VPN-on-demand
...
The VPN-on-demand settings should not be part of the tunnel
configuration. Rather, the onDemandRules stored in the
tunnel provider configuration serve as the one place
where the VPN-on-demand settings are stored.
2018-11-12 19:24:13 +05:30
Roopesh Chander
b09f3e3992
TunnelsManager: Support for on-demand rules
2018-11-11 01:31:38 +05:30
Roopesh Chander
151ad9de84
Tunnel edit, Tunnel view model: UI for providing On-Demand activation options
2018-11-11 01:18:36 +05:30
Roopesh Chander
049e9f0b05
Model: Add activationType to tunnel configuration
...
We make sure existing tunnel serializations can be deserialized correctly.
We also bump up the tunnelConfigurationVersion, because the tunnel
configuration contents have changed.
2018-11-11 01:17:36 +05:30
Roopesh Chander
75474acb59
Model: ActivityType enum to represent VPN-on-demand options
2018-11-10 19:17:24 +05:30
Roopesh Chander
ae627c5e5d
Model: TunnelConfiguration: Add explicit conformance to Decodable
2018-11-10 19:01:34 +05:30
Roopesh Chander
0db19f187b
Model: Ensure that a TunnelConfiguration always has a valid array of peers
2018-11-10 17:02:30 +05:30
Roopesh Chander
e974b7df23
VPN: When activating while another tunnel is active, deactivate the other tunnel
2018-11-10 16:44:28 +05:30
Roopesh Chander
e6917a6075
TunnelsManager: startDeactivation() need not take a completion handler
...
Because the completion handler pattern doesn't fit in this case.
2018-11-10 16:44:28 +05:30
Roopesh Chander
97d8570d99
VPN: There are no DNS errors to handle in the app now
2018-11-10 16:44:28 +05:30
Roopesh Chander
6d28240531
NE: Minor refactoring to enable calling startTunnel() with a tunnelConfiguration
2018-11-09 22:29:52 +05:30