Jason A. Donenfeld
2fa2f58aad
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-07 23:58:53 +01:00
Jason A. Donenfeld
1eddb2c86d
PacketTunnelProvider: Show log timestamp
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-07 23:56:26 +01:00
Jason A. Donenfeld
ddccd6da4c
wireguard-go-bridge: account for network changes
...
Everytime the network changes, we need to recreate the UDP socket,
because the ephemeral listen port is tied to the old physical interface.
As well, we need to re-set the IP addresses for each endpoint, so that
they're passed to getaddrinfo and are then resolved using DNS46.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-07 21:50:19 +01:00
Roopesh Chander
aa0b288436
Zip: Increase size of buffer used to read data from the archive
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-08 02:17:55 +05:30
Roopesh Chander
71568d1899
Settings: Export log: Perform file operations in a background thread
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-08 02:17:55 +05:30
Roopesh Chander
06a783f50a
On-Demand: TunnelViewModel: Make activate-on-demand methods static
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-08 02:17:23 +05:30
Roopesh Chander
465c22f769
On-Demand: Move detail text to TunnelViewModel
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-08 02:17:15 +05:30
Jason A. Donenfeld
b7e5638681
Plist: Handle crypto export
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-07 18:52:14 +01:00
Jason A. Donenfeld
66b4aedd08
Make strings consistent
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-07 18:52:14 +01:00
Roopesh Chander
105eca7adc
State restoration: Restore tunnel detail view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 19:05:08 +05:30
Roopesh Chander
e3801308cb
Main VC: No need to refresh statuses if the tunnelsManager isn't initialized yet
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 15:52:47 +05:30
Roopesh Chander
05d0429c50
Tunnels list: Deselect rows correctly
...
Do it like UITableViewController.clearsSelectionOnViewWillAppear would.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:23 +05:30
Roopesh Chander
fa9a4921a8
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
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
c827a00307
Error handling: Use ErrorPresenter.showErrorAlert() instead of per-VC showErrorAlert() methods
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
dcfa9473e9
Error handling: Use WireGuardAppError and WireGuardResult throughout the app
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
782dd2ea4e
Error handling: Introduce a WireGuardResult type to handle errors in callbacks across the app
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
c9267ba634
Error handling: Introduce a WireGuardAppError protocol to manage errors
...
The alert strings shall be located next to where the errors are declared.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
8d26a3c536
Error handling: Cleanup Tunnels Manager errors
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
7631844fbe
Error presenter: Always handle the passed error
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
046b540e53
Tunnel detail: Cell status switch should be toggled only after the alert presentation completes
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
f6faffa4c1
Refactoring: Consolidate file deletion into a separate function
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
290bd192a0
NE: Logging: Log file should begin with version numbers and tunnel name
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-07 12:36:19 +05:30
Roopesh Chander
bf86731879
NE: Logging: Make it clear which calls to wg_log use String and which use StaticString
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-04 15:58:53 +05:30
Roopesh Chander
4e386e85e4
Settings: Add timestamp to exported log
...
And remove the exported log afterwards.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-04 14:12:53 +05:30
Roopesh Chander
046d1413ec
Refactor out VPN-handling stuff from tunnels list VC to the main VC
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-03 18:51:51 +05:30
Roopesh Chander
e1b258353c
VPN: Error out when tunnel activation fails because there's no internet
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-03 18:51:42 +05:30
Roopesh Chander
cdd132d7d0
Settings: Export log file
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-12-02 13:26:53 +05:30
Roopesh Chander
679d63294d
NE: Write log to file
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-30 00:36:33 +05:30
Roopesh Chander
d01d46fde8
Info.plist: Add app group id for accessing from both the app and the network extension
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-29 14:05:27 +05:30
Roopesh Chander
a3bc306b6e
Xcode: Add app groups capability
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-29 12:01:45 +05:30
Roopesh Chander
3e1772ccd0
It's 'WiFi', not 'Wifi'
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-28 12:41:35 +05:30
Roopesh Chander
b946cbc0f3
NE: All DNS queries must first go through the VPN's DNS servers
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-23 13:04:55 +05:30
Roopesh Chander
8590a8804a
Tunnel view model: Invalidate the configuration object when updating allowedIPs using the 'Exclude private IPs' switch
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-19 15:22:27 +05:30
Roopesh Chander
a117e3ae3e
Config file parser: Be case-insensitive to attribute keys in the config file
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-19 12:37:54 +05:30
Roopesh Chander
ef2012330f
Config file parser: Fix typo
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-17 22:52:37 +05:30
Roopesh Chander
6bb25782c1
Exporting: Export to zip in a background thread
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-15 13:39:56 +05:30
Roopesh Chander
1dac181803
Exporting: Refactor out zip exporting into a separate class
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-15 13:39:56 +05:30
Roopesh Chander
d556729705
Exporting: No need to check for duplicate names - we disallow it at creation time itself
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-15 13:39:56 +05:30
Roopesh Chander
b1ae13652c
Importing: Import from zip in a background thread
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-15 13:39:56 +05:30
Roopesh Chander
203d6b4596
Importing: Refactor out zip importing into a separate class
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-14 18:52:10 +05:30
Roopesh Chander
2676ee0169
Tunnels manager: After saving after activating on-demand, reload tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-14 13:02:53 +05:30
Roopesh Chander
c60c29b93c
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
bdb2411ebc
Tunnel detail: Show VPN-on-demand information
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
923d039a78
Tunnels manager: Keep track of NETunnelProviderManager's isOnDemandEnabled property
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
abb0312d38
Tunnel edit: Update for VPN-on-demand changes
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
f1b8de7312
Tunnel view model: VPN-on-demand stuff shouldn't be part of the tunnel model
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
cc122d7463
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-12 19:24:13 +05:30
Roopesh Chander
39a067cb96
TunnelsManager: Support for on-demand rules
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-11 01:31:38 +05:30
Roopesh Chander
c5e8b05e8b
Tunnel edit, Tunnel view model: UI for providing On-Demand activation options
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-11 01:18:36 +05:30
Roopesh Chander
4b7094d652
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-11-11 01:17:36 +05:30