Commit Graph

905 Commits

Author SHA1 Message Date
Roopesh Chander
a876386c05 on-demand: iOS: Only n SSIDs / Except m SSIDs 2019-03-18 06:46:55 +01:00
Roopesh Chander
0e04f5d337 on-demand: iOS: Show list of SSIDs in a separate screen 2019-03-18 06:46:55 +01:00
Roopesh Chander
d85717785c on-demand: iOS: SSIDs view: Always show the selected SSIDs section 2019-03-18 06:46:55 +01:00
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
49fb621a7a on-demand: TunnelViewModel: Remove unused on-demand-related methods 2019-03-18 06:46:55 +01:00
Roopesh Chander
0335753cb7 on-demand: macOS: Tunnel detail: Show SSID info 2019-03-18 06:46:55 +01:00
Roopesh Chander
31b22f579c on-demand: iOS: Update on-demand info shown in tunnel edit view 2019-03-18 06:46:55 +01:00
Roopesh Chander
5be8d2f069 on-demand: ActivateOnDemandViewModel: Uniquify SSIDs list
And if SSIDs list is empty, fall back to .anySSID option
2019-03-18 06:46:55 +01:00
Roopesh Chander
8c1c490da2 on-demand: macOS: Support SSIDs in on demand activation 2019-03-18 06:46:55 +01:00
Roopesh Chander
583fb3ca7d on-demand: iOS: Tunnel detail: Show SSID info 2019-03-18 06:46:55 +01:00
Roopesh Chander
a2e5166779 on-demand: iOS: Add ability to add current SSID 2019-03-18 06:46:55 +01:00
Roopesh Chander
8cc973cdac on-demand: iOS: Xcode: Add ability to access current SSID 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
008975de06 on-demand: Introducing ActivateOnDemandViewModel 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
Roopesh Chander
7610dc94d4 macOS: Localize tooltips 2019-03-18 06:46:55 +01:00
Roopesh Chander
1fdc8eb13a macOS: Tunnel detail: Make the Activate button part of the list view 2019-03-18 06:46:55 +01:00
Roopesh Chander
9622128a80 macOS: Nullify observationToken on prepareForReuse() 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
Jason A. Donenfeld
5716e3fb50 ringlogger: support mpsc for singlefile 2019-03-17 08:51:27 +01:00
Roopesh Chander
73a3029046 macOS: Tunnel detail: Activate / Deactivate is now a button 2019-03-17 02:27:46 +05:30
Roopesh Chander
9b05678bdd macOS: Tunnel detail: Show the status in the list view 2019-03-17 02:27:46 +05:30
Roopesh Chander
62b03272ee macOS: KeyValueImageRow class 2019-03-17 02:27:46 +05:30
Jason A. Donenfeld
1d768d4e9d wg-quick parser: trim \r as well
The influx of Windows users has already begun to infect our nice
project.

Reported-by: Cosku Bas <cosku.bas@gmail.com>
2019-03-11 14:05:16 -06: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
9c71d63254 macOS: Ability to remove multiple tunnels at a time 2019-03-10 20:02:19 +05:30
Roopesh Chander
8648f80877 TunnelsManager: Support for removing multiple tunnels at a time 2019-03-10 19:43:27 +05:30
Roopesh Chander
047da7911c macOS: Generalize NoTunnelsDetailVC into a ButtonedDetailVC 2019-03-10 19:22:33 +05:30
Roopesh Chander
a836bcbe74 Importing: Only the main thread shall access lastFileImportErrorText 2019-03-05 16:11:57 +05:30
Roopesh Chander
f49bfbee48 Importing: Make use of lastError returned from TunnelsManager.addMultiple() 2019-03-05 16:11:41 +05:30
Roopesh Chander
415e1e7c0c TunnelsManager: addMultiple() should also return the last error 2019-03-05 15:29:28 +05:30
Roopesh Chander
4e476dadb3 Importing: Simplify TunnelImporter 2019-03-04 14:13:49 +05:30
Roopesh Chander
c33563f848 Importing: macOS: Support importing of multiple files at a time 2019-02-25 18:43:20 +05:30
Roopesh Chander
d3299ef94e Importing: Use case-insensitive comparison for zip extension 2019-02-25 16:21:29 +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
4b8f2ff235 Importing: Show OS error when unable to open a .conf file 2019-02-24 16:50:57 +05:30
Roopesh Chander
e86c0d239a macOS: Tunnel edit: Disable user interaction when OS VPN prompt is shown 2019-02-24 16:06:37 +05:30
Roopesh Chander
e8c81904db macOS: Tunnel edit: s/populateTextFields()/populateFields()/g; 2019-02-24 15:14:35 +05:30
Roopesh Chander
255645bdf0 macOS: When programmatically selecting a tunnel, also scroll if required 2019-02-22 18:18:53 +05:30
Roopesh Chander
100fc4b855 macOS: Replace NSSegmentedControl with NSPopUpButton and NSButton
Thereby avoiding the hacky way of showing the menus.
2019-02-22 17:59:41 +05:30
Roopesh Chander
e6c146f8c7 Importing: Give a clearer error message on importing an invalid config 2019-02-22 13:03:53 +05:30
Roopesh Chander
926a2fa401 macOS: Show 'quitting with active tunnel' only when appropriate
Not when logging off or when the machine's shutting down
2019-02-22 13:03:53 +05:30
Roopesh Chander
0862faa3b7 macOS: Fix removal of DNSes from AllowedIPs when DNS has changed 2019-02-21 18:17:28 +05:30
Roopesh Chander
b787ed9f5a iOS: On changing DNS, update AllowedIPs with the current DNS servers 2019-02-21 17:57:13 +05:30
Roopesh Chander
e5e5418307 macOS: On saving, update AllowedIPs with the current DNS servers 2019-02-21 17:57:13 +05:30
Roopesh Chander
24141baa66 Importing: Better error message when .conf file is not readable 2019-02-21 17:57:13 +05:30
Jason A. Donenfeld
e6d62f334a macOS: Specify crypto compliance 2019-02-19 16:12:33 +01:00
Roopesh Chander
9cfdbfa1a2 TunnelViewModel: Remove DNS from AllowedIPs when unchecking 'Exclude private IPs' 2019-02-16 19:57:31 +05:30
Roopesh Chander
226911715c macOS: Exclude private IPs 2019-02-16 18:25:17 +05:30
Roopesh Chander
549f5de700 TunnelViewModel: Minor refactoring of exclude private IPs handling 2019-02-16 17:35:33 +05:30
Jason A. Donenfeld
2a4e4e798a ConfTextStorage: lowercase only once
Also fix submodule regression.
2019-02-16 17:18:10 +05:30
Roopesh Chander
89c108d00f ConfTextStorage: Let's keep the AllowedIPs and DNS servers as strings 2019-02-16 01:20:11 +05:30
Roopesh Chander
0e124746d9 ConfTextStorage: Make fieldType an enum 2019-02-16 00:26:49 +05:30
Jason A. Donenfeld
da3b9d8077 ConfTextStorage: keep track of single peer state for exclude private IPs 2019-02-15 19:44:06 +01:00
Roopesh Chander
eb683ce18c macOS: Tunnel detail: Set min width/height 2019-02-15 15:44:11 +05:30
Roopesh Chander
5eaef2f573 macOS: Tunnels list: Use constant width for the table view 2019-02-15 15:40:12 +05:30
Jason A. Donenfeld
40250bfbab macOS: Show privacy notice on adding first tunnel
App store reviewers don't understand that this isn't a service.

Revert this as soon as they come to their senses.
2019-02-15 01:14:14 +01:00
Jason A. Donenfeld
429af207c7 Version bump 2019-02-14 23:07:06 +01:00
Roopesh Chander
9c0e001265 Preshared key field in the detail view should just say 'enabled' 2019-02-12 19:30:59 +05:30
Roopesh Chander
74f55febab Log migration of tunnel configuration 2019-02-12 19:17:32 +05:30
Roopesh Chander
70923d9c87 Migrate when we notice a new tunnel in reload() 2019-02-12 17:43:40 +05:30
Roopesh Chander
078780a3ba Don't migrate in asTunnelConfiguration()
It causes problems when installing a tunnel through a
Configuration Profile on macOS and activating it first through
Network Preferences.
2019-02-12 17:37:27 +05:30
Roopesh Chander
e49e20ca51 Info.plist: Localize with InfoPlist.strings 2019-02-11 16:08:55 +05:30
Roopesh Chander
ee80eb7614 macOS: Change keyboard shortcut for importing to Cmd+O 2019-02-10 17:55:50 +05:30
Roopesh Chander
10ca25e60f macOS: Adapt to the new applyConfiguration API 2019-02-10 03:35:24 +05:30
Roopesh Chander
aea253a6e9 iOS: Rewrite applying runtime configuration
To make scrolling smoother while the fields are modified
2019-02-10 03:35:24 +05:30
Roopesh Chander
3355019408 Importing: Ignore case in matching file extensions inside zip files 2019-02-09 19:42:50 +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
36ccb5883d Version bump 2019-02-08 17:32:38 +01:00
Roopesh Chander
3cea15f6f2 Fix writing of preshared key to config format 2019-02-09 14:57:24 +05:30
Jason A. Donenfeld
80f48aec81 Project: don't embed swift binaries into appex
Otherwise we're rejected from the app store.
2019-02-08 17:26:05 +01:00
Jason A. Donenfeld
6134817b23 Global: fix swiftlint issues 2019-02-08 17:07:28 +01:00
Jason A. Donenfeld
98866b323b KeyEncoding: rename file to match extension filename style 2019-02-08 16:15:10 +01:00
Jason A. Donenfeld
9852a75f01 Key: we already do len checking in C 2019-02-08 14:39:59 +01:00
Jason A. Donenfeld
657915e931 Info.plist: Add missing key types
I worry that LSMinimumSystemVersion in the extension's plist might be
problematic, since that same plist runs on macOS and iOS. We _might_
need to bifurcate.
2019-02-08 03:47:36 +01:00
Jason A. Donenfeld
9239512b49 Version bump
First Mac App Store release if all goes well.
2019-02-08 03:28:28 +01:00
Jason A. Donenfeld
7ebf36d0f4 Key: Use C implementation instead
Swift compiles so slowly and it's unclear all of the insane type punning
was even correct.
2019-02-08 03:23:15 +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
6014b4b8a6 iOS: Use shorter pretty time 2019-02-08 04:40:11 +05:30
Roopesh Chander
b947c98dc0 iOS: Tunnel detail: Turn off animation when showing fields changing 2019-02-08 04:40:11 +05:30
Roopesh Chander
59918ec67a macOS: Show alert if exiting with an active tunnel
Instead of deactivating the tunnel.
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
56d878481b Enable hardened runtime 2019-02-07 19:17:27 +01:00
Jason A. Donenfeld
e89714cfbb NetworkExtensionMac: Don't forget to link to the networkextension framework 2019-02-07 19:13:43 +01:00
Jason A. Donenfeld
364fcd4dbe StatusItemController: Show animation when deactivating 2019-02-07 18:19:15 +01:00
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
5c67f7467c macOS: prohibit multiple instances of app 2019-02-06 06:20:23 +01:00
Jason A. Donenfeld
c005893fe7 PrivateDataConfirmation: prompt with touch/face/pin/password ID for viewing/exporting keys 2019-02-06 06:20:23 +01:00
Jason A. Donenfeld
30576a1fe6 LegacyConfig: Remove and support plaintext for .mobileconfig 2019-02-06 06:20:23 +01:00
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
c79a45f2e2 Project: Remove OS name from appex file name 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
4ac1437c4b wg-quick conf parser: Handle inline comments correctly 2019-02-05 16:45:32 +05:30
Roopesh Chander
d3a4d606cf macOS: Select tunnel after adding it with 'Add empty tunnel' 2019-02-05 16:39:19 +05:30
Roopesh Chander
6838d19599 macOS: Ensure fields are updated on saving 2019-02-05 16:15:43 +05:30