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