Commit Graph

916 Commits

Author SHA1 Message Date
Roopesh Chander 6766644d80 macOS: Tunnels list: Don't allow empty selection 2019-03-18 12:03:41 +05:30
Roopesh Chander b1c731f8d7 on-demand: macOS: Remove unused class ControlRow 2019-03-18 06:46:56 +01:00
Roopesh Chander 094ab4fed7 on-demand: macOS: Integrate Ethernet and Wi-Fi controls in one row 2019-03-18 06:46:56 +01:00
Roopesh Chander f8c1837f1e on-demand: View model should account for isActivateOnDemandEnabled
This is needed to correctly handle NETunnelProviderManager's
isOnDemandEnabled property getting changed outside of the app.
2019-03-18 06:46:56 +01:00
Roopesh Chander 75f4272fc0 on-demand: macOS: Disable SSIDs field when adding a tunnel
It shouldn't be editable when the VPN prompt is shown.
2019-03-18 06:46:56 +01:00
Roopesh Chander bb82004d5c on-demand: iOS: Disable selection in SSID detail table view 2019-03-18 06:46:56 +01:00
Roopesh Chander 255d53db35 on-demand: macOS: Remove unused class PopupRow 2019-03-18 06:46:56 +01:00
Roopesh Chander c01964de4f on-demand: macOS: Auto-complete SSIDs based on currently connected SSID 2019-03-18 06:46:56 +01:00
Roopesh Chander 1333f6dc42 on-demand: iOS: Change wording for add-SSIDs rows 2019-03-18 06:46:56 +01:00
Roopesh Chander 9193437067 on-demand: "Only selected SSIDs" -> "Only these SSIDs" 2019-03-18 06:46:56 +01:00
Roopesh Chander 986c5d3741 on-demand: macOS: Tunnel detail: List SSIDs 2019-03-18 06:46:55 +01:00
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