Roopesh Chander
7827147bc8
Move logic to extension: Include shared model code when building the extension
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 14:50:05 +05:30
Roopesh Chander
a473dfe4f8
Model: Move InterfaceConfiguration.publicKey to Curve25519.swift
...
The code for public key calculation need not be shared with the extension
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 14:48:25 +05:30
Roopesh Chander
fb6a7f6007
Move logic to extension: Move PacketTunnelOptionsGenerator to the extension
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 14:16:30 +05:30
Roopesh Chander
f7b04b0b5d
Move logic to extension: Invoke startTunnel() without any options
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 14:15:01 +05:30
Roopesh Chander
c88c660b51
Move logic to extension: Move model files to Shared
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 13:56:50 +05:30
Roopesh Chander
ec2d67ea00
Tunnel edit: While preparing for reuse, should make onValueBeingEdited nil as well
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-08 12:25:36 +05:30
Roopesh Chander and Jason A. Donenfeld
85a19da487
iPad: Ensure we set sourceRect for all cases where we use sourceView
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 17:43:30 +01:00
Roopesh Chander and Jason A. Donenfeld
b5447add1e
Info.plist: Register for handling public.text files for Open-in
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 17:43:30 +01:00
Roopesh Chander and Jason A. Donenfeld
879e9816aa
Importing: Also support importing public.text files in the file picker
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 17:43:30 +01:00
Roopesh Chander
3269bb476a
iPad: Set correct sourceRect for the popover anchored on the central 'Add' button
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 18:23:12 +05:30
Roopesh Chander
b3515c937e
TunnelsManager: Return a manager with no tunnels in the simulator
...
To be able to run at least parts of the app in the simulator.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 18:15:20 +05:30
Roopesh Chander
7e9ee913c1
iPad: Configuring the split-view controller should happen in init(), not loadView()
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 15:54:30 +05:30
Roopesh Chander
f9dcfc1b9d
Importing: Assume imported files without .conf or .zip extensions to be a config file
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-07 00:35:37 +05:30
Roopesh Chander
33edfd3587
DNSResolver: No need to resolve if the endpoint is already an IP address
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 23:59:48 +05:30
Roopesh Chander
aa0b6e0c60
Model: Endpoint.hasHostAsIPAddress()
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 23:59:48 +05:30
Roopesh Chander
f6a5dfead4
Global: swiftlint autocorrect --format
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 22:42:53 +05:30
Roopesh Chander
0f4b1c5c1c
Global: swiftlint autocorrect
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 22:42:05 +05:30
Roopesh Chander
3496adca86
Importing: Error out on file with unsupported file extension
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 22:32:33 +05:30
Roopesh Chander
95a4419b20
Tunnel edit: TunnelEditTableViewKeyValueCell need not support a read-only mode now
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 19:01:13 +05:30
Roopesh Chander
6c9fc8bcb1
Tunnel edit: A new cell class for the public key field, to make the value scrollable
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 17:05:03 +05:30
Roopesh Chander
1a43ad6e39
Tunnel detail: Refactor out the label scrolling into a separate UI class
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 16:49:09 +05:30
Roopesh Chander
a62f7fb988
Tunnel view model: Peers in a configuation may not share the same public key
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 08:17:56 +05:30
Roopesh Chander
636aa98b79
Parser: Peers in a configuation may not share the same public key
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-06 08:17:56 +05:30
Roopesh Chander
34a8d70a45
Parser: Address, DNS and AllowedIPs can have mutliple entries
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-05 23:53:00 +05:30
Roopesh Chander
733c29021e
QR Code: Dismiss the QR code screen when the name prompt is cancelled
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-05 23:38:41 +05:30
Roopesh Chander
f102051e22
Tunnel view model: No need to save if we already have a validated configuration object
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-05 22:55:09 +05:30
Roopesh Chander
6d191665a4
Add a correct launch-screen storyboard
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-04 02:31:04 +05:30
Roopesh Chander
c80901fbed
Change version with 0.0.yyyymmdd versioning scheme
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 19:28:29 +05:30
Roopesh Chander
68f91e2a84
VPN: Make sure actions inside tunnelProvider completion handlers are done in the main queue
...
They should really already be in the main queue, but we do this just in case.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 19:26:28 +05:30
Roopesh Chander
582092abb1
VPN: Start observing the status only if startTunnel() succeeds
...
This should fix the status change to .disconnected when we're resolving endpoints
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 19:22:30 +05:30
Roopesh Chander
7c4992894b
VPN: We should never get a status change to .disconnected if we're resolving endpoints
...
But we do, which we'll fix subsequently
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 18:58:27 +05:30
Roopesh Chander
538704e7bd
Revert "TunnelsManager: initialize observer on correct thread"
...
Rather, we'll make sure we always call startObservingTunnelStatus from
the main thread.
This reverts commit d16a6a167c8217e81dd9111d1ad9e4ec6429ef3b.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 18:45:26 +05:30
Roopesh Chander
66389c60b5
Settings: Show the captioned WireGuard logo at the end
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 18:41:54 +05:30
Roopesh Chander
09fbe93bf0
Settings: Swap table view sections
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 17:53:50 +05:30
Roopesh Chander
e8802b14b4
Remove empty image
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 17:39:43 +05:30
Roopesh Chander
b9d0b9f096
Tunnels list: Fix status switch look after flipping it off after an error
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 17:28:16 +05:30
Roopesh Chander
2f5e83cf99
ErrorPresenter: showErrorAlert takes an onPresentated handler
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 17:27:07 +05:30
Roopesh Chander
a512216d85
Tunnels list: Should deselect the row when handling the selection
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 16:05:02 +05:30
Roopesh Chander
9312821778
Tunnel list: Don't show the detail view after creating a config from scratch
...
So it's consistent with the other two "Add a configuration" menu items
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 15:51:29 +05:30
Roopesh Chander
366ca7802a
Ensure that all tunnel names are trimmed of whitespaces
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 15:45:29 +05:30
Roopesh Chander
ac79c5b1f7
Zip archive: Handle files within folders inside the zip
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 15:37:31 +05:30
Roopesh Chander
ae2ae87bbe
Tunnels list: Remove separator lines in the table view
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 10:26:15 +05:30
Roopesh Chander
735d542658
Tunnels list: Show an 'Add' button when there are no tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 10:26:09 +05:30
Roopesh Chander
0c60489819
Tunnels list: Show a busy indicator before the tunnels are loaded
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 10:25:47 +05:30
Roopesh Chander
9df0064eac
Tunnels list: The Add and Settings buttons should be no-ops until the tunnels are loaded
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 10:25:47 +05:30
Roopesh Chander
f6a29d9f50
Tunnel edit: Use layoutMarginsGuide instead of constants
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-03 10:25:47 +05:30
Roopesh Chander
dff928fafa
Tunnel detail: In the key-value cell, make the value label scrollable horizontally
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 23:48:27 +05:30
Roopesh Chander
4c485cdbb2
Tunnel edit: Ensure all key-value fields have a placeholder text
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 18:20:32 +05:30
Roopesh Chander
f92fb1b9f4
DNSResolver: Bugfix: Always call completion handler
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 18:10:51 +05:30
Roopesh Chander
29004c0ab6
Info.plist: Update document icons and description
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 17:40:46 +05:30
Roopesh Chander
159ecca829
Info.plist: Document type UTI should be consistent with exported UTI
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 17:40:46 +05:30
Roopesh Chander
cd16db83cc
Info.plist: Register zip file for open-in
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 17:40:46 +05:30
Roopesh Chander
09a0d1ef20
Info.plist: Add .conf extension to document type
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 17:40:46 +05:30
Roopesh Chander
1e5bd7e458
Add document icon
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 17:39:43 +05:30
Roopesh Chander
f7be9a29a9
Add app icons
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 16:11:24 +05:30
Roopesh Chander
969e0bda10
Remove files we don't need
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 15:39:10 +05:30
Roopesh Chander
90af773fef
Handle cell reuse in showing delete buttons in red
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 13:24:10 +05:30
Roopesh Chander
e7a1f142fb
Table edit: Show/hide 'Exclude Private IPs' instead of enable/disable
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 13:12:10 +05:30
Roopesh Chander
66e802584b
Tunnel view model: If there's just one peer, populate the scratchpad on init
...
So that exclude private IPs can be computed correctly.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 13:09:45 +05:30
Roopesh Chander
b3cc30a207
Tunnel view model: Initialize peerData.numberOfPeers
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-02 12:05:58 +05:30
Roopesh Chander
abd02975c5
Deletion buttons are shown in red
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 23:53:09 +05:30
Roopesh Chander
46e9eddecc
Tunnel edit: Highlight erroring field keys in red
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 23:45:48 +05:30
Roopesh Chander
55cf6e6181
Tunnels list: Swipe left to delete
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 23:45:48 +05:30
Roopesh Chander
196daccdde
QR code: Fix what happens when an error is shown
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 22:08:01 +05:30
Roopesh Chander
7608cebbc6
NE: Show an alert when someone tries to start the VPN from iOS Settings
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 22:08:01 +05:30
Roopesh Chander
3611f8cf5a
Tunnel errors: Consolidate tunnel activation errors into ErrorPresenter
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 16:58:33 +05:30
Roopesh Chander
39a457e402
TunnelsManager: Better errors
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 16:57:40 +05:30
Roopesh Chander
53a93e9b92
ConfigFile: WgQuickConfigFileWriter: Fix '[Peer]' section header
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 16:13:30 +05:30
Roopesh Chander
1377153bc6
Importing: Account for errors in showing the 'No configurations found' error
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 15:59:17 +05:30
Roopesh Chander
5138cdf9ea
Tunnel detail: Fix deletion of tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 15:54:37 +05:30
Roopesh Chander
040ce32015
VPN: TunnelsManager: Fix deletion code
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 15:53:10 +05:30
Roopesh Chander
2870175ab2
VPN: Restart tunnel after modifying a currently active configuration
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 15:36:59 +05:30
Roopesh Chander
b96e5ae563
QR code: Degrade gracefully when running on the simulator or on a device without a camera
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
95ad752d65
Revert "QR code: QR code scanning is not available in the simulator"
...
This reverts commit 9729386406cd9543303a68e51d57b286880bb8cd.
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
193b8c2596
Importing: Show error when the zip file contains no .conf files
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
cf7966e876
VPN: We have to start observing the tunnelContainer before we attempt to activate it
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
066449b207
Importing: Error out on duplicate name
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
bede8a17ad
QR Code: Error out on duplicate name
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
050f8aa679
Tunnel edit: Error out on duplicate name when creating / modifying a tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
bd1820e9f5
VPN: An ErrorPresenter class to consolidate showing of error alerts
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
92d3de1b0d
VPN: Introduce an error enum for adding/modifying/removing tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 11:45:44 +05:30
Roopesh Chander
dd33d74caf
VPN: TunnelsManager: s/TunnelsManagerError/TunnelActivationError/g;
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 01:47:53 +05:30
Roopesh Chander
0aab067a53
VPN: TunnelsManager should keep track of tunnel names to prevent duplicate names
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-11-01 01:47:53 +05:30
Roopesh Chander
b2ab6b91a1
VPN: Retry startTunnel based on error conditions
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-31 16:42:29 +05:30
Roopesh Chander
059a989fc9
Tunnel list: Fix importing zip with multiple configurations
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-31 14:30:25 +05:30
Roopesh Chander
439f8f5a15
VPN: Support adding multiple configurations in one shot
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-31 14:29:54 +05:30
Roopesh Chander
e13bf133db
QR code: QR code scanning is not available in the simulator
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 19:22:24 +05:30
Roopesh Chander
900b468622
Style: Remove 'Based on' attributions
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 19:07:07 +05:30
Roopesh Chander
904a080690
QR code: Show label overlay with info on how to generate the QR code
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 19:04:15 +05:30
Roopesh Chander
cd7dd56980
Tunnel creation: Placeholders for Listen port, Pre-shared key, Persistent Keepalive
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 18:50:56 +05:30
Roopesh Chander
fd241fac40
VPN: Refactor use of DNS resolution while activating the tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 18:36:28 +05:30
Roopesh Chander
ce20a17e51
NE: Print error when unable to start the tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 18:36:28 +05:30
Roopesh Chander
60943d88e0
Tunnel view model: IP address can be specified without '/cidr'
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 13:46:10 +05:30
Roopesh Chander
7e4597e0d7
Model: IP address can be specified without '/cidr'
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 13:45:16 +05:30
Roopesh Chander
535f0e1e4a
Fix error message: s/atleast/at least/g;
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 13:32:14 +05:30
Roopesh Chander
38e4e274aa
VPN: Better error messages
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-30 00:24:50 +05:30
Roopesh Chander
4cacf550a3
VPN: Specify an error when there are no peers with an endpoint
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-29 23:38:40 +05:30
Roopesh Chander
6fe0eb0bcf
Export: Exporting config files
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-29 23:06:55 +05:30
Roopesh Chander
fc78187d54
mv Parsing/ ConfigFile/
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-29 19:05:01 +05:30
Roopesh Chander
ffc9b11efb
Settings: Add a settings panel
...
Signed-off-by: Roopesh Chander <roop@roopc.net >
2018-10-29 17:34:09 +05:30