Jason A. Donenfeld
fbe101eabb
macOS: Privacy notice is provided by system dialogs
...
So it really doesn't make sense to add our own. This causes several
popups when trying to add a tunnel, which is madness.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-20 04:24:23 +01:00
Jason A. Donenfeld
cda3170970
macOS: Login item: Add a simple login item
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-19 21:15:38 -06:00
Jason A. Donenfeld
a5e7c3906b
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-19 21:25:38 +01:00
Roopesh Chander
5f8843e247
iOS: Delete confirmation prompt should be a question
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-19 21:23:46 +01:00
Roopesh Chander
7a3f65fd2f
macOS: Add 'Deactivate' status menu item
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-19 21:23:46 +01:00
Jason A. Donenfeld
dca0fb29f6
Version: CFBundleVersion must always increase for macOS app store
...
So we'll just start doing it like that, then.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-19 06:00:40 +01:00
Jason A. Donenfeld
af9c800af8
Swiftlint: variable_name -> identifier_name
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-18 22:26:13 -06:00
Jason A. Donenfeld
a9b925c69b
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-18 22:13:27 -06:00
Jason A. Donenfeld
f93f9d62f4
macos: TunnelsList: set allowsEmptySelection after making initial selection
...
Otherwise we never get the event that the selection changed, so we don't
wind up showing anything in the details pane.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-18 22:13:27 -06:00
Roopesh Chander
fc163fc9ff
iOS: Consolidate all showConfirmationAlert()s into one place
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 14:54:05 -06:00
Roopesh Chander
adc5a7cac2
iOS: Tunnels list: Ability to remove multiple tunnels at a time
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 14:54:05 -06:00
Roopesh Chander
0dd22ca45a
iOS: Tunnel edit: Add missing enum values
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 14:54:05 -06:00
Roopesh Chander
bca9fead5e
macOS: ButtonedDetailViewController: Set min dimensions
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-19 01:28:52 +05:30
Jason A. Donenfeld
51822f722a
ringlogger: document races
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-18 12:50:00 -06:00
Roopesh Chander
121d223229
macOS: Tunnels list: Double-click to activate / deactivate
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 12:03:41 +05:30
Roopesh Chander
439fb6bbac
macOS: Tunnels list: Don't allow empty selection
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 12:03:41 +05:30
Roopesh Chander
9c8231dcf7
on-demand: macOS: Remove unused class ControlRow
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
0440c4a33a
on-demand: macOS: Integrate Ethernet and Wi-Fi controls in one row
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
01be43aa7a
on-demand: View model should account for isActivateOnDemandEnabled
...
This is needed to correctly handle NETunnelProviderManager's
isOnDemandEnabled property getting changed outside of the app.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
e29c6900e5
on-demand: macOS: Disable SSIDs field when adding a tunnel
...
It shouldn't be editable when the VPN prompt is shown.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
a334c25aff
on-demand: iOS: Disable selection in SSID detail table view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
f56b2ad968
on-demand: macOS: Remove unused class PopupRow
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
503ac6c8a2
on-demand: macOS: Auto-complete SSIDs based on currently connected SSID
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
5f30e021ef
on-demand: iOS: Change wording for add-SSIDs rows
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
d748382fce
on-demand: "Only selected SSIDs" -> "Only these SSIDs"
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:56 +01:00
Roopesh Chander
63299a2752
on-demand: macOS: Tunnel detail: List SSIDs
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
b7f8f74b56
on-demand: iOS: Only n SSIDs / Except m SSIDs
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
8e5a9215de
on-demand: iOS: Show list of SSIDs in a separate screen
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
64925cab89
on-demand: iOS: SSIDs view: Always show the selected SSIDs section
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
062b4d4b16
on-demand: Remove ActivateOnDemandSetting type
...
The ActivateOnDemandOption type shall be used instead
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
d9bdc61fb9
on-demand: TunnelViewModel: Remove unused on-demand-related methods
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
0ae8d25134
on-demand: macOS: Tunnel detail: Show SSID info
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
574d8433b3
on-demand: iOS: Update on-demand info shown in tunnel edit view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
bd339e2876
on-demand: ActivateOnDemandViewModel: Uniquify SSIDs list
...
And if SSIDs list is empty, fall back to .anySSID option
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
fff75adfe1
on-demand: macOS: Support SSIDs in on demand activation
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
01604dd8d1
on-demand: iOS: Tunnel detail: Show SSID info
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
bdeb89a9e5
on-demand: iOS: Add ability to add current SSID
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
36dc252512
on-demand: iOS: Xcode: Add ability to access current SSID
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
5941bf181c
on-demand: iOS: Support for SSIDs
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
7a450089c0
on-demand: Introducing ActivateOnDemandViewModel
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
5d757982ba
on-demand: Infrastructure for supporting SSID-based rules
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
3767a12983
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
9795b0609a
macOS: Localize tooltips
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
0f98312d15
macOS: Tunnel detail: Make the Activate button part of the list view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Roopesh Chander
f81275812c
macOS: Nullify observationToken on prepareForReuse()
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-18 06:46:55 +01:00
Jason A. Donenfeld
b2b5e0e379
TunnelName: sort correctly with numbers and capitals
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-18 06:46:55 +01:00
Jason A. Donenfeld
a6f80135ef
ringlogger: support mpsc for singlefile
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-17 08:51:27 +01:00
Roopesh Chander
e23c221aff
macOS: Tunnel detail: Activate / Deactivate is now a button
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-17 02:27:46 +05:30
Roopesh Chander
50bc994762
macOS: Tunnel detail: Show the status in the list view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-17 02:27:46 +05:30
Roopesh Chander
3e05da4486
macOS: KeyValueImageRow class
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-17 02:27:46 +05:30
Jason A. Donenfeld
f6c70500a7
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>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-11 14:05:16 -06:00
Roopesh Chander
663923864c
TunnelsManager: Don't restart if only on-demand setting has changed
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-11 13:20:21 +05:30
Roopesh Chander
9250780ffc
macOS: Ability to remove multiple tunnels at a time
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-10 20:02:19 +05:30
Roopesh Chander
9bc17034dd
TunnelsManager: Support for removing multiple tunnels at a time
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-10 19:43:27 +05:30
Roopesh Chander
db6f0729c6
macOS: Generalize NoTunnelsDetailVC into a ButtonedDetailVC
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-10 19:22:33 +05:30
Roopesh Chander
fe4f8b666d
Importing: Only the main thread shall access lastFileImportErrorText
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-05 16:11:57 +05:30
Roopesh Chander
90c0f7e92e
Importing: Make use of lastError returned from TunnelsManager.addMultiple()
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-05 16:11:41 +05:30
Roopesh Chander
3afcee04be
TunnelsManager: addMultiple() should also return the last error
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-05 15:29:28 +05:30
Roopesh Chander
202e7a4890
Importing: Simplify TunnelImporter
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-04 14:13:49 +05:30
Roopesh Chander
a389bd93cb
Importing: macOS: Support importing of multiple files at a time
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-25 18:43:20 +05:30
Roopesh Chander
b2a2110d8c
Importing: Use case-insensitive comparison for zip extension
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-25 16:21:29 +05:30
Roopesh Chander
5ed28907ec
iOS: Hack to restart active tunnel after adding a new tunnel
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-24 19:30:14 +05:30
Roopesh Chander
ab6d714070
Importing: Show OS error when unable to open a .conf file
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-24 16:50:57 +05:30
Roopesh Chander
d3df8734c2
macOS: Tunnel edit: Disable user interaction when OS VPN prompt is shown
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-24 16:06:37 +05:30
Roopesh Chander
ea5996abe0
macOS: Tunnel edit: s/populateTextFields()/populateFields()/g;
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-24 15:14:35 +05:30
Roopesh Chander
ce405f856e
macOS: When programmatically selecting a tunnel, also scroll if required
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-22 18:18:53 +05:30
Roopesh Chander
98a967acc8
macOS: Replace NSSegmentedControl with NSPopUpButton and NSButton
...
Thereby avoiding the hacky way of showing the menus.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-22 17:59:41 +05:30
Roopesh Chander
b01d09dfb5
Importing: Give a clearer error message on importing an invalid config
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-22 13:03:53 +05:30
Roopesh Chander
7a580e8941
macOS: Show 'quitting with active tunnel' only when appropriate
...
Not when logging off or when the machine's shutting down
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-22 13:03:53 +05:30
Roopesh Chander
39fb52a2e3
macOS: Fix removal of DNSes from AllowedIPs when DNS has changed
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-21 18:17:28 +05:30
Roopesh Chander
69a064d954
iOS: On changing DNS, update AllowedIPs with the current DNS servers
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-21 17:57:13 +05:30
Roopesh Chander
eb684ef711
macOS: On saving, update AllowedIPs with the current DNS servers
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-21 17:57:13 +05:30
Roopesh Chander
b0eff424f9
Importing: Better error message when .conf file is not readable
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-21 17:57:13 +05:30
Jason A. Donenfeld
c195760b15
macOS: Specify crypto compliance
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-19 16:12:33 +01:00
Roopesh Chander
ba3f0db92c
TunnelViewModel: Remove DNS from AllowedIPs when unchecking 'Exclude private IPs'
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-16 19:57:31 +05:30
Roopesh Chander
5031a7db4c
macOS: Exclude private IPs
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-16 18:25:17 +05:30
Roopesh Chander
a355232e09
TunnelViewModel: Minor refactoring of exclude private IPs handling
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-16 17:35:33 +05:30
Jason A. Donenfeld
6f7214ff38
ConfTextStorage: lowercase only once
...
Also fix submodule regression.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-16 17:18:10 +05:30
Roopesh Chander
4c88f477a2
ConfTextStorage: Let's keep the AllowedIPs and DNS servers as strings
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-16 01:20:11 +05:30
Roopesh Chander
2fb9d6af71
ConfTextStorage: Make fieldType an enum
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-16 00:26:49 +05:30
Jason A. Donenfeld
38ac66071c
ConfTextStorage: keep track of single peer state for exclude private IPs
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-15 19:44:06 +01:00
Roopesh Chander
910fdfc321
macOS: Tunnel detail: Set min width/height
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-15 15:44:11 +05:30
Roopesh Chander
c38a88988b
macOS: Tunnels list: Use constant width for the table view
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-15 15:40:12 +05:30
Jason A. Donenfeld
fcca2d4fec
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.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-15 01:14:14 +01:00
Jason A. Donenfeld
58181a4d40
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-14 23:07:06 +01:00
Roopesh Chander
4547e01283
Preshared key field in the detail view should just say 'enabled'
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-12 19:30:59 +05:30
Roopesh Chander
5792db22a6
Log migration of tunnel configuration
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-12 19:17:32 +05:30
Roopesh Chander
6331b81b5d
Migrate when we notice a new tunnel in reload()
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-12 17:43:40 +05:30
Roopesh Chander
77f929789c
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-12 17:37:27 +05:30
Roopesh Chander
b5b72b309f
Info.plist: Localize with InfoPlist.strings
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-11 16:08:55 +05:30
Roopesh Chander
966fa7909b
macOS: Change keyboard shortcut for importing to Cmd+O
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-10 17:55:50 +05:30
Roopesh Chander
115059f2bb
macOS: Adapt to the new applyConfiguration API
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-10 03:35:24 +05:30
Roopesh Chander
e53c2d4d17
iOS: Rewrite applying runtime configuration
...
To make scrolling smoother while the fields are modified
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-10 03:35:24 +05:30
Roopesh Chander
0a3a5ee900
Importing: Ignore case in matching file extensions inside zip files
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-09 19:42:50 +05:30
Roopesh Chander
7720307fc9
TunnelsManager: No need to access tunnelConfiguration on status change
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-09 19:42:50 +05:30
Jason A. Donenfeld
ea827e2ebd
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 17:32:38 +01:00
Roopesh Chander
91b1734b7a
Fix writing of preshared key to config format
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-09 14:57:24 +05:30
Jason A. Donenfeld
bac4851e95
Project: don't embed swift binaries into appex
...
Otherwise we're rejected from the app store.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 17:26:05 +01:00
Jason A. Donenfeld
0e2556544e
Global: fix swiftlint issues
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 17:07:28 +01:00
Jason A. Donenfeld
38a6ba7091
KeyEncoding: rename file to match extension filename style
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 16:15:10 +01:00