Commit Graph

93 Commits

Author SHA1 Message Date
Roopesh Chander 8e1bcd3c04 Swift 5 migration: Make use of Result type 2019-04-21 17:51:42 +05:30
Roopesh Chander 43024dfcbb Swift 5 migration: Handle changes in Data's pointer interface 2019-04-09 11:25:04 +05:30
Roopesh Chander 283462dc9b Swift 5 migration: Fix switch warnings
We now get a warning when switching over enums from system
frameworks even when we handle all public cases because
there can be future cases that aren't handled.

When such a future case is introduced, we'll get a warning.
2019-04-09 11:25:04 +05:30
Roopesh Chander 8bbf4e084a TunnelsManager: When setting a config, also set isAvailable cache 2019-04-06 00:26:06 +05:30
Roopesh Chander 740350bed5 TunnelsManager: Fix comparing tunnels with tunnelProviders in reload() 2019-04-05 13:43:08 +05:30
Roopesh Chander 3a10eb0748 TunnelsManager: Cache isTunnelConfigurationAvailableInKeychain 2019-04-05 13:29:17 +05:30
Roopesh Chander d8d18fcb3d macOS: Attempt to remove keychain item only if verified 2019-04-04 15:29:25 +05:30
Roopesh Chander fb4dca6018 macOS: Better handling of tunnels created by another user
Previously, the tunnels just got deleted.
2019-04-03 19:04:12 +05:30
Roopesh Chander 8c3fcc6aee on-demand: Remove ActivateOnDemandSetting type
The ActivateOnDemandOption type shall be used instead
2019-03-18 06:46:55 +01:00
Roopesh Chander 8ef69cd82d on-demand: iOS: Support for SSIDs 2019-03-18 06:46:55 +01:00
Roopesh Chander 3b2281113a on-demand: Infrastructure for supporting SSID-based rules 2019-03-18 06:46:55 +01:00
Roopesh Chander 94ba22945e on-demand: Simplify OS-specific code for interface type selection
Previously, the enum values themselves were different for iOS and macOS.
With this commit, the enum values are common, and only how they're handled
is specific to iOS and macOS.
2019-03-18 06:46:55 +01:00
Jason A. Donenfeld fad463d449 TunnelName: sort correctly with numbers and capitals 2019-03-18 06:46:55 +01:00
Roopesh Chander ce291d54a1 TunnelsManager: Don't restart if only on-demand setting has changed 2019-03-11 13:20:21 +05:30
Roopesh Chander 8648f80877 TunnelsManager: Support for removing multiple tunnels at a time 2019-03-10 19:43:27 +05:30
Roopesh Chander 415e1e7c0c TunnelsManager: addMultiple() should also return the last error 2019-03-05 15:29:28 +05:30
Roopesh Chander 1da882785e iOS: Hack to restart active tunnel after adding a new tunnel 2019-02-24 19:30:14 +05:30
Roopesh Chander 70923d9c87 Migrate when we notice a new tunnel in reload() 2019-02-12 17:43:40 +05:30
Roopesh Chander 7cee9608d9 TunnelsManager: No need to access tunnelConfiguration on status change 2019-02-09 19:42:50 +05:30
Jason A. Donenfeld 6134817b23 Global: fix swiftlint issues 2019-02-08 17:07:28 +01:00
Jason A. Donenfeld e2c717212b Key: Constant time encoding 2019-02-08 03:23:15 +01:00
Roopesh Chander 443ecb1e20 TunnelsManager: Ignore status changes on tunnel providers we don't have 2019-02-08 04:40:11 +05:30
Roopesh Chander fd40b3adb8 TunnelsManager: Don't lose .restarting state 2019-02-08 02:34:30 +05:30
Roopesh Chander 9111b2723f TunnelsManager: Log startDeactivation calls 2019-02-08 02:34:29 +05:30
Jason A. Donenfeld 2d761b4a00 PacketTunnelProvider: proper fix for 32073323 2019-02-07 15:01:37 +01:00
Roopesh Chander af026c106e TunnelsManager: When creating/modifying a tunnel, update the associated object 2019-02-07 18:18:04 +05:30
Jason A. Donenfeld 0407d41005 Keychain: store configurations in keychain instead of providerConfig 2019-02-06 06:20:23 +01:00
Jason A. Donenfeld bcd475e0bc TunnelsManager: cache access to configuration object
Supposedly we never change it once per object, so we do the objective C
hack of adding it cached to the extension. This prevents 1000s of calls
to the keychain and improves the speed of imports.
2019-02-06 01:52:31 +01:00
Jason A. Donenfeld d2556d045d TunnelsManager: Wait for 6 seconds on deactivation instead of 5 2019-02-06 01:52:31 +01:00
Roopesh Chander 60f1fee6e7 Configure timers to fire even when tracking mouse events 2019-01-31 17:04:34 +05:30
Roopesh Chander df7bdc0baa TunnelsManager: Invoke reload() in a subsequent runloop 2019-01-26 14:31:42 +05:30
Roopesh Chander 0c9380fe4e macOS: Delay .deactivated status to workaround system bug
For some time after it's connection status becomes .disconnected,
if a tunnel gets started, it gets automatically killed by the system
after ~25 seconds.
2019-01-26 14:25:38 +05:30
Roopesh Chander e8c644dfdf macOS: Select the active tunnel when showing the manage tunnels window 2019-01-24 18:35:11 +05:30
Roopesh Chander a099d6fa26 TunnelsManager: func tunnelInOperation() 2019-01-24 18:11:26 +05:30
Jason A. Donenfeld fef3e80472 Tunnel: support getting runtime configuration 2019-01-24 01:37:57 +01:00
Roopesh Chander d272cc2ab3 iOS: Fix stale tunnel being shown on iPad
When the detail view is shown in the iPad and we delete
the current tunnel with a list view swipe rather than the delete button,
the detail view should go blank.
2019-01-23 16:11:55 +05:30
Roopesh Chander b6ad3f39e0 macOS: reload: Iterate in reverse 2019-01-22 20:06:52 +05:30
Jason A. Donenfeld 5ddb81b654 TunnelsManager: refresh status after replacing insides 2019-01-22 15:35:14 +01:00
Jason A. Donenfeld 465b9037ba TunnelsManager: use new helper 2019-01-22 15:20:57 +01:00
Roopesh Chander c477f721fb macOS: Handle tunnel deletions outside the app 2019-01-22 19:30:21 +05:30
Roopesh Chander ca827d2d10 Better os() directives 2019-01-22 04:06:37 +05:30
Roopesh Chander 02dbb4f94d TunnelsManager: Remove unused variable 2019-01-18 09:32:49 +01:00
Roopesh Chander b6d159ac96 macOS: Different status bar icon looks for different states
- Looks dimmed when no tunnel is active
 - Looks normal when a tunnel is active
 - Animates when a tunnel is activating
2019-01-16 01:26:10 +05:30
Roopesh Chander 1d5b04c822 On-Demand: Add support for macOS-specific values 2019-01-14 14:52:26 +05:30
Jason A. Donenfeld 7bf3d7b09d Update copyright 2019-01-07 19:23:39 -05:00
Eric Kuck 89fd494291 Fix typo for simulator builds 2018-12-22 14:32:39 -06:00
Roopesh Chander 09a96ec2a8 TunnelErrors: Add alert text for PacketTunnelProviderError 2018-12-22 16:05:43 +05:30
Roopesh Chander baf99733f5 TunnelStatus: Absorb NEVPNStatus+CustomStringConvertible 2018-12-22 15:46:28 +05:30
Jason A. Donenfeld 08daec71aa Also refresh status 2018-12-22 07:07:53 +01:00
Jason A. Donenfeld 470da3ffcc Reassign tunnelProvider if it changes from outside the app 2018-12-22 06:56:12 +01:00