Commit Graph

647 Commits

Author SHA1 Message Date
Roopesh Chander 01ea8f5f30 Tunnel detail: iPad: Handle deletion of tunnel correctly 2018-12-21 18:02:18 +05:30
Roopesh Chander 939e96e5c1 NE: Update listen port only when first interface changes
When handling network path changes, change the listen port
only when the first interface has changed.
2018-12-21 17:32:44 +05:30
Roopesh Chander 115e057d96 NE: Change handling of bad domain names and Activate On Demand
The solution implemented in commit b8c331c causes the tunnel to
remain in 'Activating' state, without the ability to cancel that.

So, in this commit, instead of retrying DNS silently on
Activated-On-Demand tunnels, we fail the startTunnel() silently.

To summarize, if activate-on-demand is on:
  - If started from the WireGuard app, show error using lastErrorFile
    mechanism, suggesting a way to turn off Activate On Demand
  - If not started from WireGuard app, don't call displayMessage()
    (don't show error to user) and silently fail starting the tunnel
2018-12-21 15:52:47 +05:30
Eric Kuck 7ce5cb9d58 Added missing param in MockTunnels 2018-12-20 13:51:44 -06:00
Jason A. Donenfeld 19dc44f3fa wireguard-go-bridge: SDK_DIR is not defined for simulator 2018-12-20 20:47:49 +01:00
Eric Kuck 9c7f27f19f Enabled more swiftlint rules 2018-12-20 11:22:37 -06:00
Eric Kuck cba41de73a Added a String->[String] helper 2018-12-20 10:46:26 -06:00
Roopesh Chander f141cf83a6 TunnelErrors: Remove unused error 2018-12-20 19:44:57 +05:30
Roopesh Chander d82aedebbd Tunnel edit: init() need not take a tunnelConfiguration argument 2018-12-19 18:35:53 +05:30
Roopesh Chander d36b764e20 NE: Log whether tunnel was activated from the app or not 2018-12-19 18:35:53 +05:30
Roopesh Chander 8f46713b0d Remove non-helpful comments 2018-12-19 18:35:53 +05:30
Roopesh Chander 61c3928459 Tunnel edit: Fix comment 2018-12-19 18:35:53 +05:30
Roopesh Chander 4c1c1f013c TunnelsManager: If only Activate On Demand has changed, don't restart tunnel 2018-12-19 18:35:53 +05:30
Roopesh Chander b8c331c72d NE: Handle bad domain names and Activate On Demand
This combination causes iOS to keep trying to bring up the tunnel,
leading to a lot of displayMessage() alerts.

In this fix, if we get a DNS resolution error in an Activate On Demand
enabled tunnel, we silently retry 9 times (with a 4-second delay before
each retry) and then show the displayMessage() alert.
2018-12-19 15:38:00 +05:30
Roopesh Chander 82ca9f7c5a NE: No need for two startTunnel() methods 2018-12-19 13:10:42 +05:30
Roopesh Chander fe69fe57e4 TunnelsManager: Handle waiting on a stale tunnel
If we have a stale tunnel on which we don't get status updates we rely
on a timer to update the status (see commit 34a7e5b).  Previously, if
the user tries to activate another tunnel, that resulted in both tunnels
waiting indefinitely. This commit fixes that.
2018-12-19 12:48:10 +05:30
Roopesh Chander efc593f7da Remove buttons and text from LaunchScreen.storyboard
With state restoration, we're not guaranteed that the
list view will get shown immediately after the launch screen.
So, generalize the launch screen as much as possible.
2018-12-18 23:00:27 +05:30
Roopesh Chander 332e684ad0 s/Observervation/Observation/g; 2018-12-18 23:00:27 +05:30
Roopesh Chander bc253b1aa8 Tunnel detail: Update restorationIdentifier when tunnel name changes 2018-12-18 19:27:31 +05:30
Roopesh Chander b1bba11785 TunnelsManager: Add periods to end the system error messages
Because they can be part of a multi-sentence message when displayed
in the alert.
2018-12-18 15:47:20 +05:30
Roopesh Chander 92903e5b63 Error handling: Add info on the underlying system error to error alerts 2018-12-17 19:04:17 +05:30
Jason A. Donenfeld 321358271d Version bump
This is our first release to the real app store.
2018-12-17 14:08:17 +01:00
Eric Kuck d1825d6b6c Got TunnelsManager back under the max file length by splitting out NEVPNStatus+CustomStringConvertible 2018-12-16 23:51:25 -06:00
Eric Kuck 92781a6eb9 Potential fix for insertRowAtIndexPath crash 2018-12-16 21:11:33 -06:00
Jason A. Donenfeld 971e9404ec More proper way to get sdk root directory 2018-12-17 00:23:11 +01:00
Jason A. Donenfeld 16c6982028 Further generalize makefile
This should allow us to eventually build on macOS
2018-12-16 03:51:43 +01:00
Jason A. Donenfeld bca72bea47 Bump the go runtime 2018-12-16 01:55:04 +01:00
Jason A. Donenfeld 395486b950 Improve mock tunnels generation 2018-12-16 01:51:14 +01:00
Roopesh Chander 6d348ab0e6 Provide mock tunnels for the Simulator
To help in generation of screenshots for the App Store
2018-12-16 01:15:10 +05:30
Jason A. Donenfeld 6f335f898a Nuke duplicate file 2018-12-15 06:21:49 +01:00
Jason A. Donenfeld 3a4d043624 Bump the go runtime 2018-12-15 06:14:05 +01:00
Jason A. Donenfeld 8547dabce1 Version bump 2018-12-15 05:08:31 +01:00
Eric Kuck 0ea2e0d11b Fixed editable KeyValueCells being copyable
Fixed DNS servers not saving
2018-12-14 21:48:48 -06:00
Jason A. Donenfeld 424c6d1173 Fix confusing indentation 2018-12-15 04:42:46 +01:00
Eric Kuck 66fcdfd13c KeyValueCells now share code 2018-12-14 20:02:37 -06:00
Eric Kuck 4ae0c4bb17 Reorganized project structure 2018-12-14 17:27:11 -06:00
Eric Kuck b06a43e2a2 Most similar views now shared between ViewControllers 2018-12-14 17:15:22 -06:00
Jason A. Donenfeld 9a7571051f Prettier log time format 2018-12-15 00:08:54 +01:00
Jason A. Donenfeld 33d88529c6 Simplify logging tags
This was roop's initial idea, and it turns out to be the better one, now
that we can pass cstrings more easily.
2018-12-14 22:53:42 +01:00
Roopesh Chander 34a7e5b558 Fix tunnel remaining in 'Activating' state
It uses to remain in 'Activating' state when we don't get a status
update notification, for example, when turning on the tunnel repeatedly
without Internet connectivity.
2018-12-14 17:33:56 +05:30
Roopesh Chander ce112a3f44 Fix status switch weird state after an error occurs 2018-12-14 16:50:36 +05:30
Jason A. Donenfeld 19f16c3291 Deduplicate functions 2018-12-14 00:01:50 +01:00
Jason A. Donenfeld 628ba73aa3 Simplify filemanager extension 2018-12-13 23:25:18 +01:00
Jason A. Donenfeld b4348a33d2 Can't -> cannot 2018-12-13 23:17:05 +01:00
Roopesh Chander e6c1e46b1d NE: Communicate last error to app through a shared file 2018-12-14 02:24:53 +05:30
Roopesh Chander 206de837d1 TunnelsManager: startActivation() need not take a tunnelConfiguration 2018-12-14 00:40:18 +05:30
Jason A. Donenfeld b40bbd1cdc Localize swiftlint 2018-12-13 20:06:37 +01:00
Eric Kuck a8cbe0d683 Reorganized ViewControllers (split out UIViews and UITableViewCells into their own classes)
All swiftlint warnings except one fixed up
2018-12-13 12:58:50 -06:00
Jason A. Donenfeld a5aaec673a Avoid escaping heap allocation 2018-12-13 19:43:12 +01:00
Jason A. Donenfeld 45dd86beee Tidy up str to gostr conversion 2018-12-13 19:36:51 +01:00