Commit Graph

45 Commits

Author SHA1 Message Date
Jason A. Donenfeld 775e174967 Nuke trailing spaces 2018-12-21 23:34:56 +01:00
Eric Kuck c62c56da13 providerConfiguration is now a WgQuickConfig 2018-12-21 16:32:08 -06:00
Eric Kuck d7a27426e9 All migration stuff moved to one gross file 2018-12-21 12:51:14 -06:00
Jason A. Donenfeld d540c1811c Simplify versioning of stored data 2018-12-21 18:58:06 +01:00
Jason A. Donenfeld df698658d2 Get rid of superflous isActivateOnDemandEnabled key 2018-12-21 18:50:32 +01:00
Eric Kuck f39893685f Updated NETunnelProvider save format 2018-12-21 16:42:16 +01:00
Eric Kuck 9c7f27f19f Enabled more swiftlint rules 2018-12-20 11:22:37 -06:00
Roopesh Chander 8f46713b0d Remove non-helpful comments 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
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
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
Jason A. Donenfeld d7f91f2888 Simplify C strings 2018-12-13 19:08:38 +01:00
Jason A. Donenfeld a9325289d2 Rewrite Logger
This reverts all of Roop's changes to the C code, and then rewrites the
logger logic to be cleaner.
2018-12-13 18:06:37 +01:00
Roopesh Chander 8d0d8cc11f Logging: Write versions from both app and extension 2018-12-13 18:09:38 +05:30
Roopesh Chander 2415f20603 Logging: file_log doesn't need the message type 2018-12-13 18:06:57 +05:30
Roopesh Chander b704f7a0db Logging: Tag the entries in the merged log
So we know which entry is from the app and which is from the network
extension.
2018-12-13 18:00:32 +05:30
Roopesh Chander 6ee3bd1ad2 Logging: Use ringlogger for logging from the app 2018-12-13 17:37:20 +05:30
Roopesh Chander 8eb6fa67ef Logging: ringlogger.c: Trim trailing newlines 2018-12-13 17:37:14 +05:30
Roopesh Chander 3520ad13e7 Logging: Use ringlogger for logging from the extension 2018-12-13 17:37:14 +05:30
Jason A. Donenfeld 6a12af4066 Commit untested ringlogger code 2018-12-13 06:14:24 +01:00
Eric Kuck 42aeb8636c More formatting nits and cyclomatic complexity fixes 2018-12-12 21:09:52 -06:00
Eric Kuck 965f66e5e2 More linter warnings fixed, enabled more swiftlint rules, project cleanup 2018-12-12 15:33:14 -06:00
Eric Kuck ea29a0c7d1 Tons more swiftlint warnings fixed. Still a few remaining. 2018-12-12 12:28:27 -06:00
Eric Kuck fa558a4019 Added swiftlint and fixed all errors (and a bunch, but not all, warnings) 2018-12-12 11:40:57 -06:00
Roopesh Chander af018988b4 Model: Declare keyLength constant and use that wherever applicable 2018-12-09 14:07:03 +05:30
Jason A. Donenfeld f8f922eda9 Make strings consistent 2018-12-07 18:52:14 +01:00
Roopesh Chander 205585c5d4 Refactoring: Consolidate file deletion into a separate function 2018-12-07 12:36:19 +05:30
Roopesh Chander 67268a0ce5 NE: Write log to file 2018-11-30 00:36:33 +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 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 fffaba451a Remove unused file PacketTunnelOptionKey.swift 2018-11-08 18:59:16 +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 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 f438f3ef6b Move logic to extension: Move model files to Shared 2018-11-08 13:56:50 +05:30
Jason A. Donenfeld f6d2feec22 Global: fix up captialization in headers 2018-10-30 03:57:35 +01:00
Roopesh Chander 7433634b66 VPN: Bring up the tunnel
The app figures out all settings and passes them in the
'options' parameter of startTunnel().

The network extension just takes them as is and just plugs the supplied
values into the right places.
2018-10-27 19:07:16 +05:30