Jason A. Donenfeld
98d306da5b
macOS: remove store update escape hatch
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-06-09 11:39:06 +02:00
Jason A. Donenfeld
c7b7b1247b
TunnelProvider: store the entire NWPath
...
Otherwise [utun0, en0] == [en0, utun0] before WiFi has connected, and we
wind up not rebinding after WiFi does successfully connect, which means
people have trouble when resuming from sleep.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-06-09 11:39:06 +02:00
Jason A. Donenfeld
f50e7ae686
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-06-06 10:27:39 +02:00
Roopesh Chander
4d6692548c
macOS: App menu > Quit shall show a prompt to quit or close window
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-06-06 10:27:11 +02:00
Roopesh Chander
1dccd39818
macOS: Save/restore the log window's size
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-06-04 20:34:37 +05:30
Roopesh Chander
4cb775c72f
macOS: Log view: Allow resizing horizontally
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-06-04 15:48:42 +05:30
Jason A. Donenfeld
d20daa345a
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-05-31 17:30:06 +02:00
Jason A. Donenfeld
168ba2da8a
NetworkExtension: bump sockets on path change
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-05-31 17:29:29 +02:00
Roopesh Chander
714d6a41bd
macOS: Dismiss modals correctly
...
Previously, the presented vc were leaking when discarding edits
or when closing the log view controller.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-31 17:29:29 +02:00
Roopesh Chander
9b92a8f933
macOS: Update app icon
...
Reduce the size and add a drop shadow
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-31 17:29:29 +02:00
Roopesh Chander
5e9780ef8f
iOS: Should be able to re-show tunnel detail
...
Fixes a bug introduced in the refactoring in
commit 7322fb084087774e8b58e347902f6d7036cbde5c
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-27 15:36:39 +05:30
Roopesh Chander
9faf814e8b
macOS: Tunnel detail: No need to update runtime info on tunnelSaved()
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-27 14:43:41 +05:30
Roopesh Chander
30da10a0e9
macOS: Start refreshing runtime info in viewWillAppear(), not init()
...
Because when the window is closed and reopened, we should start
refreshing runtime info again.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-27 14:38:17 +05:30
Roopesh Chander
a18614d6b3
macOS: Fix residual menu highlight on reopen
...
If we close the window with Cmd+W or Cmd+Q and then re-launch the app,
the main menu shows residual highlight from the close action. This
commit fixes that.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-26 00:12:47 +05:30
Jason A. Donenfeld
5100e597aa
macOS: do not call out to recent tunnels tracker
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-05-26 00:12:47 +05:30
Jason A. Donenfeld
0340641c4c
NetworkExtension: apparently the extension process is scoped properly anyway
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-05-26 00:12:47 +05:30
Jason A. Donenfeld
813dea6902
NetworkExtension: use excludedRoutes instead of binding on iOS
...
The networking stack there is to flaky and the notifier doesn't always
fire correctly. Hopefully excludedRoutes works well with XLAT; otherwise
we're in trouble.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-05-26 00:12:47 +05:30
Roopesh Chander
c30d491edc
iOS: Should be able to call showTunnelDetail multiple times
...
And the detail views should not stack up.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-26 00:12:42 +05:30
Roopesh Chander
88c80d6694
iOS: Refactor showing of the tunnel detail
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-25 13:24:01 +02:00
Roopesh Chander
393718dfaf
iOS: Show Home screen quick actions for recent tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-25 13:24:01 +02:00
Roopesh Chander
f852b6f919
iOS: Keep track of most-recently-activated tunnels
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-25 13:24:01 +02:00
Roopesh Chander
8926434682
macOS: Workaround for unresponsive main menu when launched from Xcode
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-22 19:52:21 +05:30
Roopesh Chander
493c7b102e
macOS: Ignore bogus reopen because of login item helper
...
The bogus reopen occurs because the SMLoginItemSetEnabled actually runs
the helper app immediately. The helper app attempts to launch the main
app, causing a reopen Apple event (rapp) to be sent.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-22 19:52:21 +05:30
Roopesh Chander
717bc8a26f
macOS: Workaround for unresponsive main menu after reopen
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-22 19:52:12 +05:30
Roopesh Chander
e582155a10
macOS: Ensure window is shown on app reopening
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-22 15:19:57 +05:30
Roopesh Chander
70d19691a7
macOS: Simplify detecting the type of an Apple event
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:28 +05:30
Roopesh Chander
40b1f0bac8
macOS: Don't show manage window when launched at login
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:28 +05:30
Roopesh Chander
52ac9b82c2
macOS: Login item: Get helper app version from xcconfig
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
fc1fdbbcdb
macOS: Login item: Fix Info.plist path
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
300268daa0
macOS: Show Manage Tunnels window on startup
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
9bf304a9ac
macOS: Minor refactor of StatusMenuWindowDelegate
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
586a592b68
macOS: Disable 'Delete Selected' when nothing is selected
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
c0526d2efb
macOS: Some menu item titles are automatically inferred
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
fdbd4f875e
macOS: Use title-style capitalization for menu items
...
As per https://developer.apple.com/design/human-interface-guidelines/macos/menus/menu-anatomy/
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
4a037cc706
macOS: Make it clear that status menu Quit quits the app
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
5190fc2249
macOS: Quit in main menu shall just close the window
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
3f25d54dcc
macOS: Get back removing tunnel using the Delete key
...
This now works only when the list view has focus
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
f9880907a2
macOS: Both list and detail main menu items should be always enabled
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
404fa741e8
macOS: swiftlint: Suppress incorrect warnings
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
6e1f03e41c
macOS: Set a main menu for the app
...
The main menu would be shown only when the manage tunnels window
is visible.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
6d8965e97d
macOS: Remove custom key event handling
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
5e5481b69b
macOS: Show app in dock when showing the manage tunnels window
...
This way, the app can participate in Cmd+Tab
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-20 16:42:27 +05:30
Roopesh Chander
69b33c0fad
macOS: Edit view: Save on Cmd+S
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-12 15:45:26 +05:30
Roopesh Chander
167e4f0bf2
macOS: Edit view: Dismiss on Esc
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-12 13:23:52 +05:30
Roopesh Chander
6e3b28852a
macOS: Log view: Dismiss on Esc
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-05-12 13:21:42 +05:30
Roopesh Chander
5914e868ab
iOS: Log view: Improve the look
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-28 14:29:22 +05:30
Jason A. Donenfeld
b954e9a4fd
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-04-23 06:49:16 +02:00
Roopesh Chander
76894fba68
Xcode: Use dwarf for debug and dwarf-with-dsym for release
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-21 18:22:31 +05:30
Roopesh Chander
89a564ce62
Swift 5 migration: Make use of Result type
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-21 17:51:42 +05:30
Roopesh Chander
178fe86d36
macOS: Detect when updating from the App Store
...
And show an alert when tunnels are active during updation -- that
might cause the update to not work correctly.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-21 15:43:10 +05:30
Jason A. Donenfeld
571349bb3d
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-04-12 10:32:06 +02:00
Roopesh Chander
98ebd55208
Log view: Don't use a global array to store log entries
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-10 17:57:36 +05:30
Roopesh Chander
83d0d34411
macOS: Log view: Stop updating the log once the log view is dismissed
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-10 15:42:39 +05:30
Jason A. Donenfeld
8c7c4b6792
Version bump
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-04-09 10:49:48 +02:00
Roopesh Chander
cef3957875
Swift 5 migration: Handle changes in Data's pointer interface
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-09 11:25:04 +05:30
Roopesh Chander
d9e88c51bd
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.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-09 11:25:04 +05:30
Roopesh Chander
90eb45e287
Xcode: Move to Swift 5.0
...
No code changes were necessary
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-07 16:42:36 +05:30
Roopesh Chander
9f3d86723a
macOS: Minor fix to export panel texts
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-06 17:59:42 +05:30
Roopesh Chander
11063d0f88
macOS: Tunnels list: Suppress alert buttons when removing tunnels is in progress
...
Also refactor the deletion alert into a separate helper class
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-06 17:53:41 +05:30
Roopesh Chander
557ee4390b
TunnelsManager: When setting a config, also set isAvailable cache
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-06 00:26:06 +05:30
Roopesh Chander
9ce42d152d
macOS: Tunnels list: Show the confirmation alert till removal completes
...
Fix tunnel selection during deletion
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-06 00:08:45 +05:30
Roopesh Chander
4c1b2e1258
TunnelsManager: Fix comparing tunnels with tunnelProviders in reload()
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-05 13:43:08 +05:30
Roopesh Chander
3bd611aa7c
TunnelsManager: Cache isTunnelConfigurationAvailableInKeychain
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-05 13:29:17 +05:30
Roopesh Chander
adbe0b065e
macOS: Attempt to remove keychain item only if verified
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-04 15:29:25 +05:30
Roopesh Chander
6015661beb
macOS: Simplify reusing of the detail VC when applicable
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-04 12:24:32 +05:30
Roopesh Chander
6e6a6b88fb
macOS: Hide other-user tunnels in the status menu
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-03 19:18:53 +05:30
Roopesh Chander
9690365dd4
macOS: Better handling of tunnels created by another user
...
Previously, the tunnels just got deleted.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-03 19:04:12 +05:30
Roopesh Chander
0299c3929e
iOS: Log view: Make log text selectable
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-01 23:29:15 +05:30
Roopesh Chander
0043233872
macOS: Log view: Fix autoscroll to end of log
...
Looks like the tableview doesn't know how much to scroll to get to the
end when we use usesAutomaticRowHeights. So we wait for the tableview
to realize its frame has changed and then scroll to the bottom of the
frame explicitly.
Also, we keep track of whether the scroll view is scrolled to the end or
not every time scrolling happens, not just when we add log entries to
the table.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-04-01 23:07:48 +05:30
Roopesh Chander
a74dd24578
macOS: Bring app to front before 'exiting with an active tunnel' alert
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-29 00:17:37 +05:30
Roopesh Chander
dd9506ecee
macOS: If a sheet is being shown, ignore quit and bring window to front
...
Otherwise, the 'exiting with an active tunnel' alert could get queued up
to be shown after the current sheet is dismissed.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-29 00:17:37 +05:30
Roopesh Chander
f83f159f97
macOS: Log view: No need to disable Close button
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-28 19:32:58 +05:30
Roopesh Chander
6175de0438
iOS: Ability to view the log
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-28 19:28:27 +05:30
Roopesh Chander
bd61be52e6
iOS: Xcode: Minor project rearrangement
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-28 14:10:42 +05:30
Roopesh Chander
909f88be70
macOS: Ability to view the log
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-28 13:57:06 +05:30
Roopesh Chander
b7c3bd0d8c
Add LogViewHelper
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-27 17:55:52 +05:30
Roopesh Chander
4237ab4a6f
macOS: Syntax highlighter: Free spans array
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-22 17:53:34 +05:30
Roopesh Chander
0fcaf6debb
macOS: Hide exclude private IPs when PrivateKey / PublicKey is missing
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-22 16:00:45 +05:30
Roopesh Chander
dbd5ea1ff0
macOS: Syntax highlighter: Swift can bridge c strings automatically
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-22 15:31:02 +05:30
Roopesh Chander
9afe230c10
macOS: On Add new, Exclude Private IPs should remain hidden
...
because there aren't any peers in the bootstrapped config.
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-22 15:15:26 +05:30
Roopesh Chander
4bdfbb518e
Xcode: iOS: Remove armv7 as 'Required device capabilities'
...
Signed-off-by: Roopesh Chander <roop@roopc.net>
2019-03-20 14:23:56 +05:30
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