Commit Graph

931 Commits

Author SHA1 Message Date
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
Jason A. Donenfeld 407b367c8d Key: we already do len checking in C
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 14:39:59 +01:00
Jason A. Donenfeld a231410c52 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.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 03:47:36 +01:00
Jason A. Donenfeld f518c00722 Version bump
First Mac App Store release if all goes well.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 03:28:28 +01:00
Jason A. Donenfeld 0539929d0c Key: Use C implementation instead
Swift compiles so slowly and it's unclear all of the insane type punning
was even correct.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 03:23:15 +01:00
Jason A. Donenfeld 05547861b6 Key: Constant time encoding
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-08 03:23:15 +01:00
Roopesh Chander 9eed5fd898 TunnelsManager: Ignore status changes on tunnel providers we don't have
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 04:40:11 +05:30
Roopesh Chander 1b8b9ed7ee iOS: Use shorter pretty time
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 04:40:11 +05:30
Roopesh Chander ef6af03412 iOS: Tunnel detail: Turn off animation when showing fields changing
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 04:40:11 +05:30
Roopesh Chander a99a755c34 macOS: Show alert if exiting with an active tunnel
Instead of deactivating the tunnel.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 04:40:11 +05:30
Roopesh Chander ecd66defe5 TunnelsManager: Don't lose .restarting state
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 02:34:30 +05:30
Roopesh Chander 1f3ec042e0 TunnelsManager: Log startDeactivation calls
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-08 02:34:29 +05:30
Jason A. Donenfeld 446c3e3698 Enable hardened runtime
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-07 19:17:27 +01:00
Jason A. Donenfeld 02e9172940 NetworkExtensionMac: Don't forget to link to the networkextension framework
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-07 19:13:43 +01:00
Jason A. Donenfeld 8676f3a663 StatusItemController: Show animation when deactivating
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-07 18:19:15 +01:00
Jason A. Donenfeld 394a0cbeb0 PacketTunnelProvider: proper fix for 32073323
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-07 15:01:37 +01:00
Roopesh Chander 868fee0477 TunnelsManager: When creating/modifying a tunnel, update the associated object
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-07 18:18:04 +05:30
Jason A. Donenfeld 0cddb562fc macOS: prohibit multiple instances of app
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 06:20:23 +01:00
Jason A. Donenfeld bebcaa012b PrivateDataConfirmation: prompt with touch/face/pin/password ID for viewing/exporting keys
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 06:20:23 +01:00
Jason A. Donenfeld ed8dc516dc LegacyConfig: Remove and support plaintext for .mobileconfig
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 06:20:23 +01:00
Jason A. Donenfeld 8c3557a907 Keychain: store configurations in keychain instead of providerConfig
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 06:20:23 +01:00
Jason A. Donenfeld a26d620f11 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.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 01:52:31 +01:00
Jason A. Donenfeld 30a73a75fd Project: Remove OS name from appex file name
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 01:52:31 +01:00
Jason A. Donenfeld 71d26b4122 TunnelsManager: Wait for 6 seconds on deactivation instead of 5
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-06 01:52:31 +01:00
Roopesh Chander 71525c9d4e wg-quick conf parser: Handle inline comments correctly
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 16:45:32 +05:30
Roopesh Chander 02a96d4566 macOS: Select tunnel after adding it with 'Add empty tunnel'
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 16:39:19 +05:30
Roopesh Chander 466db151b8 macOS: Ensure fields are updated on saving
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 16:15:43 +05:30
Roopesh Chander 1be133f269 iOS: Ensure fields are updated on saving
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 15:54:23 +05:30
Roopesh Chander 80de2ac6ac macOS: Apply runtime configuration by diff-ing
And apply the diff on the tableView as insertRows/removeRows.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 12:36:35 +05:30
Roopesh Chander 8a6a60482c TunnelViewModel: Don't call peer change handler if there are no changes
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 12:36:34 +05:30
Roopesh Chander 657ec34d19 macOS: Tunnel detail: Refactor calculation of tableViewModelRows
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-05 12:36:34 +05:30
Jason A. Donenfeld f7a31ca7bb x25519: demand RNG is successful
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-05 00:49:48 +01:00
Jason A. Donenfeld 3c61db3a21 Config: Add template for macOS key
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-03 13:47:42 +01:00
Roopesh Chander 618d89941a iOS: SwitchCell should hold the observation token
And should nil the token when preparing for reuse.

This also reverts "iOS: Tunnel detail: Refactor updation of status"

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-03 12:40:19 +05:30
Roopesh Chander cbc602245e iOS: KeyValueCell should hold the observation token
And should nil the token when preparing for reuse.

Otherwise, the observation closure is still active even after the cell
gets reused.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-03 12:40:19 +05:30
Roopesh Chander 4ff6105053 iOS: Apply runtime configuration by diff-ing
And apply the diff on the tableView as insert/remove/reloads.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-02 19:22:01 +05:30
Roopesh Chander 4134baced1 iOS: Tunnel detail: Keep track of visible fields with a [Bool] array
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-02 18:10:57 +05:30
Jason A. Donenfeld 0c5739db82 Strings: fix backwards clock wording
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-02-01 14:49:38 +01:00
Roopesh Chander 1f51ff6b17 iOS: Tunnel detail: Reload runtime config every second
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-02-01 15:27:17 +05:30
Roopesh Chander 08e5d65045 iOS: Tunnel detail: Refactor updation of status
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-31 18:46:46 +05:30
Roopesh Chander 1189b3d700 Fix handling of 'PersistentKeepalive: every n seconds'
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-31 18:22:08 +05:30
Roopesh Chander f292a0ec7a iOS: Make it compile again
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-31 18:17:04 +05:30
Roopesh Chander 3b29578524 Configure timers to fire even when tracking mouse events
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-31 17:04:34 +05:30
Roopesh Chander 70ac48ceba macOS: Tunnel detail: Reload runtime config every second
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-31 16:48:51 +05:30
Roopesh Chander acecc70397 Logger: Convert do-catch to try?
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-28 17:50:48 +05:30
Roopesh Chander b0bb2e993a Runtime info: Make bytecount and timestamp info prettier
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-28 17:27:08 +05:30
Roopesh Chander d1f83d167e Persistent Keepalive detail should read 'every n seconds'
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-28 16:07:28 +05:30
Roopesh Chander a796c6c485 TunnelsManager: Invoke reload() in a subsequent runloop
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-26 14:31:42 +05:30
Roopesh Chander 6ad3487a9d 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.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-26 14:25:38 +05:30
Roopesh Chander eabeb8ff05 macOS: Select the active tunnel when showing the manage tunnels window
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-24 18:35:11 +05:30
Roopesh Chander 52eec55d36 TunnelsTracker: Simplify using TunnelsManager.tunnelInOperation()
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-24 18:11:55 +05:30
Roopesh Chander 3c80490273 TunnelsManager: func tunnelInOperation()
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-24 18:11:26 +05:30
Roopesh Chander c36a9e4ffd macOS: Ensure status is up-to-date on startup
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-24 16:51:01 +05:30
Roopesh Chander 812e660491 Config file parsing: Fix bug when there are comments at the end
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-24 16:23:07 +05:30
Jason A. Donenfeld 2fe9f83ba5 macOS: show runtime configuration in tunnel manager
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-24 01:37:57 +01:00
Jason A. Donenfeld 22625e8cc4 Tunnel: support getting runtime configuration
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-24 01:37:57 +01:00
Roopesh Chander 19f353127e macOS: Tunnel detail: Fix updation of tunnelEditVC
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-23 19:26:43 +05:30
Roopesh Chander e5a76be6fd macOS: Deactivate any active tunnel when app exits
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-23 16:31:30 +05:30
Roopesh Chander 76527ef0f8 macOS: Adapt to TunnelsManagerListDelegate changes
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-23 16:21:20 +05:30
Roopesh Chander 11e44f9ae5 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.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-23 16:11:55 +05:30
Roopesh Chander 77d4a02139 iOS: Fix handling of deletion outside app
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-23 14:48:45 +05:30
Roopesh Chander 54f45cb3f8 macOS: reload: Iterate in reverse
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 20:06:52 +05:30
Jason A. Donenfeld 704de3b26c TunnelsManager: refresh status after replacing insides
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-22 15:35:14 +01:00
Jason A. Donenfeld d05b735703 TunnelsManager: use new helper
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-22 15:20:57 +01:00
Roopesh Chander 9f362e8cb0 macOS: Tunnel edit: Handle deletion outside app
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 19:30:21 +05:30
Roopesh Chander 2677efc9bf macOS: Tunnel detail: Handle deletion outside app
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 19:30:21 +05:30
Roopesh Chander 2aad8cf0e8 macOS: Handle tunnel deletions outside the app
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 19:30:21 +05:30
Jason A. Donenfeld 668c4a475c macOS: remove mobile network tweeks
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-22 13:11:28 +01:00
Jason A. Donenfeld 557b093232 MacOS: StatusMenu: Properly localize menu title
Partially revert "macOS: StatusMenu: Remove unused menu title"

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-22 11:26:07 +01:00
Roopesh Chander 6f9fa35c5a macOS: Disable save button if the syntax highlighter detects any errors
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 12:57:32 +05:30
Roopesh Chander d37e230ee0 macOS: Fix crash when importing using NoTunnelsDetailVC's button
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 05:00:39 +05:30
Roopesh Chander e812683d6c macOS: StatusMenu: Remove unused menu title
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:41:52 +05:30
Roopesh Chander 6d8e5cf3ed Let there be newlines at the end of all files
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:40:47 +05:30
Roopesh Chander 244a2df2dd Fix localization
- Use Unicode ellipses
- Use single quotes everywhere
- Use smart quotes
- Minor text change ("You cannot undo this action.")

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:35:13 +05:30
Roopesh Chander 0848765f50 macOS: Use Unicode version of '...' for menu text
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:16:22 +05:30
Roopesh Chander 8951ea338f macOS: Fix status-related menu items
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:11:24 +05:30
Roopesh Chander 273ee04450 Better os() directives
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 04:06:37 +05:30
Jason A. Donenfeld e2b068af1a macOS: Tunnel edit: actually clean up error handling
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-21 23:21:47 +01:00
Jason A. Donenfeld 4e2f4e7124 XCode: set default signing identity back
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-21 23:17:08 +01:00
Roopesh Chander 6509009afc macOS: Tunnel edit: Clean up error handling when saving
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 03:26:01 +05:30
Jason A. Donenfeld 0b2a4c2811 macOS: Observe private key changes for new tunnels too
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-21 22:55:25 +01:00
Jason A. Donenfeld e1198b6e08 macOS: Better highlighter default value and move c implementation
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-21 22:22:20 +01:00
Jason A. Donenfeld d7a88300f6 macOS: Make highlighter themes static
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-21 22:13:14 +01:00
Roopesh Chander b22aeaeb20 Avoid using return in single-line closures
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 02:01:32 +05:30
Roopesh Chander e0798b8a97 macOS: Make color theme use a dict
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 02:01:32 +05:30
Roopesh Chander 1bc2177883 macOS: Reset attributes for each syntax highlight cycle
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 01:19:16 +05:30
Roopesh Chander 15517c4c3d macOS: Refactor syntax highlighting
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-22 01:18:07 +05:30
Roopesh Chander f6c9ce2d71 macOS: Simplify NSColor extension
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-21 19:07:42 +05:30
Jason A. Donenfeld 5aa0f1a25f macOS: show icon for inactive state
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-18 21:17:53 +01:00
Jason A. Donenfeld 602639ee25 highlighter: do not rely on localized case comparisons
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-18 09:32:49 +01:00
Jason A. Donenfeld d06887d435 Xcode: move directives to toplevel project when possible
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-18 09:32:49 +01:00
Jason A. Donenfeld 470e4e7f7f global: Fix up copyright headers
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-18 09:32:49 +01:00
Roopesh Chander 86165d25f7 TunnelsManager: Remove unused variable
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-18 09:32:49 +01:00
Roopesh Chander 69b973efdc macOS: Tunnel detail: Better alignment for bottom controls
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-18 09:32:49 +01:00
Roopesh Chander dc8f27c5c3 macOS: Rafactor by introducing a TunnelsTracker
The TunnelTracker is now the central place to track what the current
tunnel is, and for keeping track of the tunnel list.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-18 01:34:24 +05:30
Roopesh Chander 796342ddec macOS: Fix autolayout errors on Add Empty Tunnel
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 14:20:09 +05:30
Roopesh Chander b7a5b8eff1 macOS: Update copyright year
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 14:08:11 +05:30
Roopesh Chander 8a0245190c macOS: Make sure app is active when showing the About dialog
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 14:05:23 +05:30
Roopesh Chander 98775bf8a0 macOS: Application: Fix comment
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 14:03:59 +05:30
Roopesh Chander 7d5eb476e4 macOS: Manage tunnels: Make keyboard shortcuts discoverable
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 02:43:24 +05:30
Roopesh Chander c477d24d67 macOS: Manage tunnels: Keyboard shortcuts
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-01-17 01:44:50 +05:30