Commit Graph

258 Commits

Author SHA1 Message Date
Roopesh Chander
6fd9e7f53a VPN: We should never get a status change to .disconnected if we're resolving endpoints
But we do, which we'll fix subsequently
2018-11-03 18:58:27 +05:30
Roopesh Chander
395e6fcdda Revert "TunnelsManager: initialize observer on correct thread"
Rather, we'll make sure we always call startObservingTunnelStatus from
the main thread.

This reverts commit d16a6a167c.
2018-11-03 18:45:26 +05:30
Roopesh Chander
c0c1fddb75 Settings: Show the captioned WireGuard logo at the end 2018-11-03 18:41:54 +05:30
Roopesh Chander
1108f82489 Settings: Swap table view sections 2018-11-03 17:53:50 +05:30
Roopesh Chander
4f287360a8 Remove empty image 2018-11-03 17:39:43 +05:30
Jeroen Leenarts
f327edfc09 Add Wireguard logo with caption to project 2018-11-03 17:39:22 +05:30
Roopesh Chander
bfdb3efa41 Tunnels list: Fix status switch look after flipping it off after an error 2018-11-03 17:28:16 +05:30
Roopesh Chander
0d4218f0c7 ErrorPresenter: showErrorAlert takes an onPresentated handler 2018-11-03 17:27:07 +05:30
Roopesh Chander
16c9f80ed8 Tunnels list: Should deselect the row when handling the selection 2018-11-03 16:05:02 +05:30
Roopesh Chander
49f055465b 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
2018-11-03 15:51:29 +05:30
Roopesh Chander
4ab4c79934 Ensure that all tunnel names are trimmed of whitespaces 2018-11-03 15:45:29 +05:30
Roopesh Chander
eb122f87e2 Zip archive: Handle files within folders inside the zip 2018-11-03 15:37:31 +05:30
Jason A. Donenfeld
d16a6a167c TunnelsManager: initialize observer on correct thread
Because of the callback recursion, this function needs to always be called from the right thread
2018-11-03 07:03:23 +01:00
Jason A. Donenfeld
b81943aaac TunnelsManager: do not track currentTunnel
It's error prone and does not give us anything.
2018-11-03 06:22:57 +01:00
Jason A. Donenfeld
8bbc49015c TunnelsManager: do not change back to inactive if we are resolving the endpoint 2018-11-03 06:09:57 +01:00
Roopesh Chander
929470c693 Tunnels list: Remove separator lines in the table view 2018-11-03 10:26:15 +05:30
Roopesh Chander
12900e6af3 Tunnels list: Show an 'Add' button when there are no tunnels 2018-11-03 10:26:09 +05:30
Roopesh Chander
4bb45397f1 Tunnels list: Show a busy indicator before the tunnels are loaded 2018-11-03 10:25:47 +05:30
Roopesh Chander
c6df88c893 Tunnels list: The Add and Settings buttons should be no-ops until the tunnels are loaded 2018-11-03 10:25:47 +05:30
Roopesh Chander
e332d6cf0e Tunnel edit: Use layoutMarginsGuide instead of constants 2018-11-03 10:25:47 +05:30
Jason A. Donenfeld
c025ff8024 TunnelsManager: fix use of arrayslice in addMultiple 2018-11-03 04:37:56 +01:00
Jason A. Donenfeld
aa5634ee27 TunnelsManager: get rid of name set
Instead, tunnels itself should be a sorted-set. For now it's a list,
which is probably fine though.
2018-11-03 03:53:08 +01:00
Jason A. Donenfeld
2fdbe1c492 TunnelsManager: get rid of index management
No need for premature optimization. There aren't that many tunnels most
of the time, and calling sort on a partially sorted array is fast.
2018-11-03 03:43:09 +01:00
Jason A. Donenfeld
6c737545aa Global: no periods at the end of error messages 2018-11-03 03:43:09 +01:00
Jason A. Donenfeld
83eeb289c2 Import: rework addMultiple logic 2018-11-03 03:43:09 +01:00
Roopesh Chander
7077dac4e9 Tunnel detail: In the key-value cell, make the value label scrollable horizontally 2018-11-02 23:48:27 +05:30
Roopesh Chander
36292d570a Tunnel edit: Ensure all key-value fields have a placeholder text 2018-11-02 18:20:32 +05:30
Roopesh Chander
8fee05969e DNSResolver: Bugfix: Always call completion handler 2018-11-02 18:10:51 +05:30
Roopesh Chander
c04773276a Info.plist: Update document icons and description 2018-11-02 17:40:46 +05:30
Roopesh Chander
dd04633b1d Info.plist: Document type UTI should be consistent with exported UTI 2018-11-02 17:40:46 +05:30
Roopesh Chander
0e61d55d3e Info.plist: Register zip file for open-in 2018-11-02 17:40:46 +05:30
Roopesh Chander
2c999c09de Info.plist: Add .conf extension to document type 2018-11-02 17:40:46 +05:30
Roopesh Chander
2abcba8031 Add document icon 2018-11-02 17:39:43 +05:30
Roopesh Chander
1a169d5cc6 Add app icons 2018-11-02 16:11:24 +05:30
Roopesh Chander
db8c6cbc21 Handle cell reuse in showing delete buttons in red 2018-11-02 13:24:10 +05:30
Roopesh Chander
c643cd1478 Table edit: Show/hide 'Exclude Private IPs' instead of enable/disable 2018-11-02 13:12:10 +05:30
Roopesh Chander
864394cf81 Tunnel view model: If there's just one peer, populate the scratchpad on init
So that exclude private IPs can be computed correctly.
2018-11-02 13:09:45 +05:30
Roopesh Chander
c61491391e Tunnel view model: Initialize peerData.numberOfPeers 2018-11-02 12:05:58 +05:30
Jason A. Donenfeld
799c2d96cd DNSResolver: getaddrinfo returns a sockaddr and inet_ntop takes strlen
The way this was written before was totally wrong.
2018-11-02 05:34:17 +01:00
Jason A. Donenfeld
73f4a90dee Global: OK over Ok 2018-11-01 21:22:12 +01:00
Roopesh Chander
2bb42ac3ec Deletion buttons are shown in red 2018-11-01 23:53:09 +05:30
Roopesh Chander
bf2031776b Tunnel edit: Highlight erroring field keys in red 2018-11-01 23:45:48 +05:30
Roopesh Chander
9f98e172b6 Tunnels list: Swipe left to delete 2018-11-01 23:45:48 +05:30
Jason A. Donenfeld
42948b2816 Global: fix up strings 2018-11-01 19:01:43 +01:00
Roopesh Chander
a0b24f53b5 QR code: Fix what happens when an error is shown 2018-11-01 22:08:01 +05:30
Jason A. Donenfeld
ae992c3deb Export: fix up export format 2018-11-01 17:31:50 +01:00
Roopesh Chander
479f04a579 Tunnel errors: Consolidate tunnel activation errors into ErrorPresenter 2018-11-01 16:58:33 +05:30
Roopesh Chander
e222c8391e TunnelsManager: Better errors 2018-11-01 16:57:40 +05:30
Roopesh Chander
c056000b55 ConfigFile: WgQuickConfigFileWriter: Fix '[Peer]' section header 2018-11-01 16:13:30 +05:30
Roopesh Chander
2d6426f798 Importing: Account for errors in showing the 'No configurations found' error 2018-11-01 15:59:17 +05:30
Roopesh Chander
1889614157 Tunnel detail: Fix deletion of tunnel 2018-11-01 15:54:37 +05:30
Roopesh Chander
d62c1fd84a VPN: TunnelsManager: Fix deletion code 2018-11-01 15:53:10 +05:30
Roopesh Chander
c999c2a0ec VPN: Restart tunnel after modifying a currently active configuration 2018-11-01 15:36:59 +05:30
Roopesh Chander
ecad18749a QR code: Degrade gracefully when running on the simulator or on a device without a camera 2018-11-01 11:45:44 +05:30
Roopesh Chander
f7331997b2 Revert "QR code: QR code scanning is not available in the simulator"
This reverts commit 9729386406.
2018-11-01 11:45:44 +05:30
Roopesh Chander
771aab9f0f Importing: Show error when the zip file contains no .conf files 2018-11-01 11:45:44 +05:30
Roopesh Chander
c681b02f7d VPN: We have to start observing the tunnelContainer before we attempt to activate it 2018-11-01 11:45:44 +05:30
Roopesh Chander
fd30ce0e0d Importing: Error out on duplicate name 2018-11-01 11:45:44 +05:30
Roopesh Chander
de7bf4cf16 QR Code: Error out on duplicate name 2018-11-01 11:45:44 +05:30
Roopesh Chander
247396ce48 Tunnel edit: Error out on duplicate name when creating / modifying a tunnel 2018-11-01 11:45:44 +05:30
Roopesh Chander
02ff2f783c VPN: An ErrorPresenter class to consolidate showing of error alerts 2018-11-01 11:45:44 +05:30
Roopesh Chander
d20a1ce7a4 VPN: Introduce an error enum for adding/modifying/removing tunnels 2018-11-01 11:45:44 +05:30
Roopesh Chander
6a586b6f98 VPN: TunnelsManager: s/TunnelsManagerError/TunnelActivationError/g; 2018-11-01 01:47:53 +05:30
Roopesh Chander
699ace099c VPN: TunnelsManager should keep track of tunnel names to prevent duplicate names 2018-11-01 01:47:53 +05:30
Jason A. Donenfeld
56d827d04a UI: not all subclasses of CopyableLabelTableViewCell have a detailTextLabel, so generalize 2018-10-31 16:38:05 +01:00
Jason A. Donenfeld
04993104b1 TunnelManager: bound recursion in startActivation 2018-10-31 15:58:03 +01:00
Roopesh Chander
5528be92ff VPN: Retry startTunnel based on error conditions 2018-10-31 16:42:29 +05:30
Roopesh Chander
dae0e10e20 Tunnel list: Fix importing zip with multiple configurations 2018-10-31 14:30:25 +05:30
Roopesh Chander
efe019b643 VPN: Support adding multiple configurations in one shot 2018-10-31 14:29:54 +05:30
Jason A. Donenfeld
d75a89c09a wireguard-go-bridge: extract version for consumption by network extension 2018-10-31 04:08:13 +01:00
Jason A. Donenfeld
34b9023f67 UI: More elegant copy-to-clipboard behavior 2018-10-31 02:17:47 +01:00
Roopesh Chander
9729386406 QR code: QR code scanning is not available in the simulator 2018-10-30 19:22:24 +05:30
Roopesh Chander
203eb46b28 Style: Remove 'Based on' attributions 2018-10-30 19:07:07 +05:30
Roopesh Chander
b12d7bfd95 QR code: Show label overlay with info on how to generate the QR code 2018-10-30 19:04:15 +05:30
Roopesh Chander
1039f1f35a Tunnel creation: Placeholders for Listen port, Pre-shared key, Persistent Keepalive 2018-10-30 18:50:56 +05:30
Roopesh Chander
13e3f4ae0a VPN: Refactor use of DNS resolution while activating the tunnel 2018-10-30 18:36:28 +05:30
Roopesh Chander
167f5ce55f Tunnel view model: IP address can be specified without '/cidr' 2018-10-30 13:46:10 +05:30
Roopesh Chander
b372d50757 Model: IP address can be specified without '/cidr' 2018-10-30 13:45:16 +05:30
Roopesh Chander
46080aae63 Fix error message: s/atleast/at least/g; 2018-10-30 13:32:14 +05:30
Jason A. Donenfeld
f6d2feec22 Global: fix up captialization in headers 2018-10-30 03:57:35 +01:00
Jason A. Donenfeld
513cd7aa04 Style: simplify remaining headers 2018-10-30 03:55:43 +01:00
Jason A. Donenfeld
f3fa487702 ZIP: fix linter warnings 2018-10-30 00:50:01 +01:00
Roopesh Chander
495b017449 VPN: Better error messages 2018-10-30 00:24:50 +05:30
Roopesh Chander
0ef0eeb116 VPN: Specify an error when there are no peers with an endpoint 2018-10-29 23:38:40 +05:30
Roopesh Chander
22dd3dcc40 Export: Exporting config files 2018-10-29 23:06:55 +05:30
Roopesh Chander
d63ee03d66 mv Parsing/ ConfigFile/ 2018-10-29 19:05:01 +05:30
Roopesh Chander
742da89df3 Settings: Add a settings panel 2018-10-29 17:34:09 +05:30
Roopesh Chander
7498e9556b Model: Cap networkPrefixLengths to valid values 2018-10-29 16:49:49 +05:30
Roopesh Chander
93be31e4e6 Tunnel edit: Support for exclude private IPs 2018-10-29 16:44:47 +05:30
Roopesh Chander
eb61152fe0 Tunnel view model: Support for exclude private IPs 2018-10-29 16:43:53 +05:30
Roopesh Chander
7f69cb6118 Tunnel edit: Fix keyboard type for reused cells 2018-10-29 16:43:12 +05:30
Roopesh Chander
ec3b43bcdf Tunnel detail: Assume there's just one section per peer 2018-10-29 13:02:11 +05:30
Roopesh Chander
e83a724d83 Tunnel edit: Assume there's just one section per peer 2018-10-29 12:47:00 +05:30
Roopesh Chander
641bcdea04 Tunnel edit: Set correct keyboard types 2018-10-29 06:19:50 +05:30
Roopesh Chander
3e1748bdd9 VPN: If we don't have to make a DNS request, we shouldn't enter that status 2018-10-29 06:19:50 +05:30
Roopesh Chander
5b85d58b27 VPN: Cache DNS resolutions while the app is in memory 2018-10-29 06:19:50 +05:30
Roopesh Chander
8d3b616fa8 VPN: Reload the tunnel before starting it up
To avoid errors like this: https://stackoverflow.com/q/47550706
2018-10-29 06:19:50 +05:30
Roopesh Chander
3ffd4a8280 Tunnel list, detail: Deletion of tunnels 2018-10-29 06:19:43 +05:30
Roopesh Chander
4e36ed43c0 VPN: Fix deletion of tunnels 2018-10-29 04:54:57 +05:30
Roopesh Chander
1e7fa2390d Fix: Make sure all prepareForReuse() implementations call super 2018-10-29 02:27:14 +05:30