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
Roopesh Chander
9568c7f980
VPN: Refresh tunnel statuses when app gets to the foreground
...
Because the tunnel could've be activated from iOS Settings now
2018-11-09 19:29:34 +05:30
Roopesh Chander
fc93ca65a5
Remove unused code
2018-11-09 19:20:33 +05:30
Roopesh Chander
fefa39de46
TunnelsManager: Ability to refresh connection statuses
2018-11-09 19:19:32 +05:30
Roopesh Chander
c9c58f3755
NE: When there's an error starting the tunnel, show it to the user using displayMessage()
2018-11-09 17:07:42 +05:30
Roopesh Chander
fffaba451a
Remove unused file PacketTunnelOptionKey.swift
2018-11-08 18:59:16 +05:30
Roopesh Chander
c0f9c01fb9
Move logic to extension: Bring up the tunnel from the stored providerConfiguration
2018-11-08 18:59:16 +05:30
Roopesh Chander
df7197473e
DNSResolver: Simplify
2018-11-08 17:52:11 +05:30
Roopesh Chander
40ce2604ea
DNSResolver: Let's not cache DNS resolution results anymore
2018-11-08 17:52:11 +05:30
Roopesh Chander
7bde4a6300
DNSResolver: DNS resolution can now happen synchronously
2018-11-08 17:52:11 +05:30
Roopesh Chander
8f35d70482
Model: Endpoint.hostname()
2018-11-08 17:52:11 +05:30
Roopesh Chander
e83af4bce5
Move logic to extension: NETunnelProviderProtocol extension code should be shared
2018-11-08 17:52:01 +05:30
Roopesh Chander
80e563406b
Move logic to extension: Refactor PacketTunnelOptionsGenerator into a PacketTunnelSettingsGenerator
2018-11-08 15:44:13 +05:30
Roopesh Chander
13eebb2e64
Move logic to extension: Move DNSResolver to extension
2018-11-08 15:09:45 +05:30
Roopesh Chander
3f3f22a048
Move logic to extension: .resolvingEndpointDomains is not longer a valid status
2018-11-08 15:08:57 +05:30
Roopesh Chander
7c9d45ac97
Move logic to extension: DNS resolution no longer happens in the app
2018-11-08 15:04:12 +05:30
Roopesh Chander
6e5b691a83
Move logic to extension: Include shared model code when building the extension
2018-11-08 14:50:05 +05:30
Roopesh Chander
2afb2244ff
Model: Move InterfaceConfiguration.publicKey to Curve25519.swift
...
The code for public key calculation need not be shared with the extension
2018-11-08 14:48:25 +05:30
Roopesh Chander
de92f2dcd8
Move logic to extension: Move PacketTunnelOptionsGenerator to the extension
2018-11-08 14:16:30 +05:30
Roopesh Chander
c7cad030aa
Move logic to extension: Invoke startTunnel() without any options
2018-11-08 14:15:01 +05:30
Roopesh Chander
f438f3ef6b
Move logic to extension: Move model files to Shared
2018-11-08 13:56:50 +05:30
Roopesh Chander
d15473a2f5
Tunnel edit: While preparing for reuse, should make onValueBeingEdited nil as well
2018-11-08 12:25:36 +05:30
Jason A. Donenfeld
8cb1850e44
Version bump
2018-11-07 17:43:50 +01:00
Roopesh Chander
cc52c88321
iPad: Ensure we set sourceRect for all cases where we use sourceView
2018-11-07 17:43:30 +01:00
Roopesh Chander
2fd8792fa5
Info.plist: Register for handling public.text files for Open-in
2018-11-07 17:43:30 +01:00
Roopesh Chander
8ad6ba6adc
Importing: Also support importing public.text files in the file picker
2018-11-07 17:43:30 +01:00
Roopesh Chander
6e142cd924
iPad: Set correct sourceRect for the popover anchored on the central 'Add' button
2018-11-07 18:23:12 +05:30
Roopesh Chander
d477b132e4
TunnelsManager: Return a manager with no tunnels in the simulator
...
To be able to run at least parts of the app in the simulator.
2018-11-07 18:15:20 +05:30
Roopesh Chander
1bba1ffe16
iPad: Configuring the split-view controller should happen in init(), not loadView()
2018-11-07 15:54:30 +05:30
Jason A. Donenfeld
f8f19ef3d7
Settings: show build id
2018-11-07 05:45:39 +01:00
Jason A. Donenfeld
b927c961ae
Version bump
2018-11-06 20:18:11 +01:00
Jason A. Donenfeld
414835e60e
Importing: simplify
2018-11-06 20:16:40 +01:00
Roopesh Chander
b9b8ae8908
Importing: Assume imported files without .conf or .zip extensions to be a config file
2018-11-07 00:35:37 +05:30
Roopesh Chander
c9b27d1617
DNSResolver: No need to resolve if the endpoint is already an IP address
2018-11-06 23:59:48 +05:30
Roopesh Chander
1410b89f23
Model: Endpoint.hasHostAsIPAddress()
2018-11-06 23:59:48 +05:30
Jason A. Donenfeld
b57824cde1
PacketTunnelProvider: modernize header
2018-11-06 19:04:53 +01:00
Roopesh Chander
cc57d8443e
Global: swiftlint autocorrect --format
2018-11-06 22:42:53 +05:30
Roopesh Chander
fe191b1eff
Global: swiftlint autocorrect
2018-11-06 22:42:05 +05:30
Roopesh Chander
2b3347b294
Importing: Error out on file with unsupported file extension
2018-11-06 22:32:33 +05:30
Jason A. Donenfeld
040f0a25ea
wireguard-go-bridge: take fd instead of fnptr
2018-11-06 16:27:25 +01:00
Jason A. Donenfeld
2a7aa578d2
Xcode: enable more warnings
2018-11-06 16:27:25 +01:00
Roopesh Chander
0f61703c34
Tunnel edit: TunnelEditTableViewKeyValueCell need not support a read-only mode now
2018-11-06 19:01:13 +05:30
Roopesh Chander
845305d8c8
Tunnel edit: A new cell class for the public key field, to make the value scrollable
2018-11-06 17:05:03 +05:30
Roopesh Chander
5ea1c5aea8
Tunnel detail: Refactor out the label scrolling into a separate UI class
2018-11-06 16:49:09 +05:30
Roopesh Chander
e9044966bf
Tunnel view model: Peers in a configuation may not share the same public key
2018-11-06 08:17:56 +05:30
Roopesh Chander
e05a6c31b9
Parser: Peers in a configuation may not share the same public key
2018-11-06 08:17:56 +05:30
Jason A. Donenfeld
e6a6decd79
Version bump
...
We update the build number, not the version number, so that test flight
doesn't need a new review.
2018-11-05 21:44:00 +01:00
Roopesh Chander
4c701a0e4f
Parser: Address, DNS and AllowedIPs can have mutliple entries
2018-11-05 23:53:00 +05:30
Roopesh Chander
c1286c95c3
QR Code: Dismiss the QR code screen when the name prompt is cancelled
2018-11-05 23:38:41 +05:30
Roopesh Chander
3e8af3fd19
Tunnel view model: No need to save if we already have a validated configuration object
2018-11-05 22:55:09 +05:30
Jason A. Donenfeld
12a4acef61
global: convert to Swift 4.2
2018-11-05 06:31:25 +01:00
Jason A. Donenfeld
145b524954
TunnelsManager: account for no or many endpoints
2018-11-05 06:23:26 +01:00
Jason A. Donenfeld
8958a04ba4
PacketTunnelProvider: clamp v6 addresses to /120
2018-11-05 03:11:11 +01:00
Jason A. Donenfeld
395ccf0e87
Settings: account for bottom padding on iPhone X
...
Reported-by: Jeffrey A. Donenfeld <jad@runblue.com>
2018-11-05 02:09:40 +01:00
Jason A. Donenfeld
54cfa3dba3
XCode: use old network extension ID
2018-11-04 05:42:25 +01:00
Jason A. Donenfeld
1f7aaaa233
XCode: unify version strings
2018-11-04 03:51:50 +01:00
Jason A. Donenfeld
1ed21aa60c
Settings: anchor logo to bottom
2018-11-04 03:37:18 +01:00
Roopesh Chander
8fb0baf5d2
Add a correct launch-screen storyboard
2018-11-04 02:31:04 +05:30
Jason A. Donenfeld
939f50be5f
Revert "Settings: Swap table view sections"
...
This reverts commit 1108f82489
.
2018-11-03 19:53:04 +01:00
Jason A. Donenfeld
d91cac6327
Settings: simplify
2018-11-03 19:48:10 +01:00