Commit Graph

717 Commits

Author SHA1 Message Date
Eric Kuck
ab48f7bed8 Cut/copy/paste now work 2019-01-14 14:52:36 +05:30
Jason A. Donenfeld
171989ec56 Resync highlighter 2019-01-14 14:52:36 +05:30
Eric Kuck
2617eab35e Syntax highlighter color updates 2019-01-14 14:52:36 +05:30
Roopesh Chander
1e848c5ef8 macOS: Support for on-demand activation 2019-01-14 14:52:36 +05:30
Roopesh Chander
59f8cc792b macOS: Quit menu item 2019-01-14 14:52:36 +05:30
Roopesh Chander
d681e70ce5 macOS: Get the app back in focus after macOS' VPN prompt 2019-01-14 14:52:35 +05:30
Roopesh Chander
f68648f874 macOS: Fix 'Network' entry in menu 2019-01-14 14:52:35 +05:30
Roopesh Chander
341f15678f macOS: Ensure a tunnel is selected when '-' is clicked 2019-01-14 14:52:35 +05:30
Roopesh Chander
874057fb9e macOS: Handle errors from TunnelsManager.create() 2019-01-14 14:52:35 +05:30
Roopesh Chander
2724a99733 iOS: Export log: Should present error from the main thread 2019-01-14 14:52:35 +05:30
Roopesh Chander
5cd3859b47 macOS: Localize export sheets 2019-01-14 14:52:35 +05:30
Roopesh Chander
3969cc6ee3 macOS: Import sheet button should say 'Import' 2019-01-14 14:52:35 +05:30
Roopesh Chander
0b8d18b842 macOS: Tunnel detail: Ensure long keys fit 2019-01-14 14:52:35 +05:30
Roopesh Chander
718c316933 macOS: Manage tunnels: Add empty tunnel pulldown menu implementation 2019-01-14 14:52:35 +05:30
Roopesh Chander
14decf0146 macOS: Update detail view after editing 2019-01-14 14:52:35 +05:30
Roopesh Chander
e428708631 macOS: Edit view: Update public key as you edit 2019-01-14 14:52:35 +05:30
Roopesh Chander
5802c74245 Highlighter: Report each key type separately 2019-01-14 14:52:34 +05:30
Roopesh Chander
728b3ef61f Parsing: Always error on unrecognized keys 2019-01-14 14:52:34 +05:30
Roopesh Chander
bc9f050d7f Parsing: Error on duplicate entries 2019-01-14 14:52:34 +05:30
Roopesh Chander
3830499ac1 macOS: Edit view: Validate and save 2019-01-14 14:52:34 +05:30
Roopesh Chander
309d06217f macOS: Refactor config file parsing
- To report more fine grained errors
 - To make the parse errors conform to WireGuardAppError
2019-01-14 14:52:34 +05:30
Eric Kuck
e0aaf0661f Syntax highlighter color updates 2019-01-14 14:52:34 +05:30
Jason A. Donenfeld
1c7ae7a334 Highlighter: use original file from contrib/examples/highlighter
This makes it easier to track updates and make diffs. Also, disable
things we don't support in the NetworkExtension app.
2019-01-14 14:52:34 +05:30
Eric Kuck
3795a06e92 Added syntax highlighting conf textview 2019-01-14 14:52:34 +05:30
Roopesh Chander
b5cfa60c8a macOS: Tunnel edit view 2019-01-14 14:52:33 +05:30
Roopesh Chander
b35ebd8a67 macOS: Rename *Cell to *Row 2019-01-14 14:52:33 +05:30
Roopesh Chander
ab077422d8 macOS: On adding the first tunnel, select it 2019-01-14 14:52:33 +05:30
Roopesh Chander
6b587b4a11 macOS: Consolidate presenting of the import panel 2019-01-14 14:52:33 +05:30
Roopesh Chander
4b4fa6519a macOS: Manage tunnels: Handle the case when there are no tunnels 2019-01-14 14:52:33 +05:30
Roopesh Chander
eddfee90f1 macOS: Present tunnel activation errors from the window when possible 2019-01-14 14:52:33 +05:30
Roopesh Chander
c14e156926 macOS: Present errors as a sheet when applicable 2019-01-14 14:52:32 +05:30
Roopesh Chander
ca5e90a70e macOS: Manage tunnels: Remove tunnel 2019-01-14 14:52:32 +05:30
Roopesh Chander
78c11a1f14 macOS: Manage tunnels: Update tunnels list on changes 2019-01-14 14:52:32 +05:30
Roopesh Chander
37d84f9f3b macOS: Manage tunnels: Export log pulldown menu implementation 2019-01-14 14:52:32 +05:30
Roopesh Chander
fde0d67dda macOS: Manage tunnels: Export tunnels pulldown menu implementation 2019-01-14 14:52:32 +05:30
Roopesh Chander
ae991167f2 macOS: Xcode: Add ablity to save files 2019-01-14 14:52:32 +05:30
Roopesh Chander
fda8a5d83b macOS: Manage tunnels: Select first tunnel on showing the window 2019-01-14 14:52:32 +05:30
Roopesh Chander
14fa8530d7 macOS: Manage tunnels: Set window title 2019-01-14 14:52:32 +05:30
Roopesh Chander
59e5247e0f macOS: Manage tunnels: Import pulldown menu implementation 2019-01-14 14:52:32 +05:30
Roopesh Chander
005a2c37c2 macOS: Manage tunnels: Localize pulldown menu items 2019-01-14 14:52:32 +05:30
Roopesh Chander
79feef3d1d macOS: Show open panel as sheet on manage window 2019-01-14 14:52:32 +05:30
Roopesh Chander
8a08b9cc2c macOS: Manage tunnels: Adjust spacings 2019-01-14 14:52:32 +05:30
Roopesh Chander
f26f4b5e7d macOS: Manage tunnels: Add a box around the detail view 2019-01-14 14:52:31 +05:30
Roopesh Chander
5ed147aa3e macOS: Manage tunnels: Show status checkbox and edit button 2019-01-14 14:52:31 +05:30
Roopesh Chander
9535a0c585 macOS: s/macMenuStatus/macStatus/g; 2019-01-14 14:52:31 +05:30
Roopesh Chander
50ed363ef2 macOS: Manage tunnels: Tunnel detail view 2019-01-14 14:52:31 +05:30
Roopesh Chander
5bd9b6f9d4 macOS: Manage tunnels: Add a filler button 2019-01-14 14:52:31 +05:30
Roopesh Chander
301dc81770 macOS: Manage tunnels: Fix list view look 2019-01-14 14:52:31 +05:30
Roopesh Chander
3bfcfe61a6 macOS: Manage tunnels: Add buttons to the bottom of the list view 2019-01-14 14:52:30 +05:30
Roopesh Chander
8d39a2725c macOS: Manage tunnels window: Tunnels list 2019-01-14 14:52:30 +05:30
Roopesh Chander
8008498ffc macOS: Capitalize All Rights Reserved 2019-01-14 14:52:30 +05:30
Roopesh Chander
b024887052 macOS: Show status as disabled menu items 2019-01-14 14:52:30 +05:30
Roopesh Chander
e61da844bd macOS: Ability to activate / deactivate a tunnel 2019-01-14 14:52:30 +05:30
Roopesh Chander
c1a5fb7ddd macOS: Ability to import tunnels from file
For now, the open panel shows as a separate window.
Later, we'll open it as a sheet on the 'Manage tunnels' window.
2019-01-14 14:52:30 +05:30
Roopesh Chander
c8b3d5a8ed iOS: Refactor importFromFile
So that it can be used in macOS as well
2019-01-14 14:52:29 +05:30
Roopesh Chander
3d97b59a4f macOS: Add tunnel management menu items 2019-01-14 14:52:29 +05:30
Roopesh Chander
93d7bfa12c macOS: Specify app is an 'agent'
This hides the app from the Dock, while still enabling the app
to come to the foreground if required.
2019-01-14 14:52:29 +05:30
Roopesh Chander
f5e5fa4d5e macOS: Create status bar with tunnel names 2019-01-14 14:52:29 +05:30
Roopesh Chander
0355d55937 macOS: Add status bar icon 2019-01-14 14:52:29 +05:30
Roopesh Chander
ee4eae0ade macOS: Remove MainMenu.xib
When there's no xib, we should explicitly set the app delegate, so we
override NSApplication and set the app delegate in NSApplication.shared
2019-01-14 14:52:29 +05:30
Roopesh Chander
1e543f7f8c macOS: NE: Add entitlements for making network connections 2019-01-14 14:52:28 +05:30
Roopesh Chander
c41be2a29d Make app groups work on both iOS and macOS 2019-01-14 14:52:28 +05:30
Roopesh Chander
c8a8d4ba1e macOS: Add Network Extensions capability to app 2019-01-14 14:52:28 +05:30
Roopesh Chander
2632ead1bf iOS: Fix WireGuardNetworkExtensioniOS target
- Rename WireGuardNetworkExtension.entitlements to WireGuardNetworkExtension_iOS.entitlements
2019-01-14 14:52:28 +05:30
Roopesh Chander
10ff41cc64 iOS: Fix WireGuardiOS target
- Move Info.plist and entitlements to WireGuard/UI/iOS/
2019-01-14 14:52:28 +05:30
Roopesh Chander
3ea00e1f41 macOS: Fix WireGuardmacOS target
- Include non-UI code from iOS while building
- Add run scripts
- Move files to WireGuard/UI/macOS
- Set Swift-Obj-C bridging header
2019-01-14 14:52:28 +05:30
Roopesh Chander
966883ea05 macOS: Fix WireGuardNetworkExtensionmacOS target
- Build using common network extension code
- Add run scripts
- Set Info.plist to common network extension's Info.plist
- Move entitlements to common network extension folder
- Remove Xcode-generated macOS network extension code
- Set Swift-Obj-C bridging header
2019-01-14 14:52:27 +05:30
Roopesh Chander
548d6bda72 macOS: WireGuardNetworkExtensionmacOS depends on WireGuardGoBridgemacOS 2019-01-14 14:52:27 +05:30
Roopesh Chander
fae6bc6bdf macOS: Add WireGuardNetworkExtensionmacOS target 2019-01-14 14:52:27 +05:30
Roopesh Chander
46b26a146c macOS: Add WireGuardmacOS target 2019-01-14 14:52:27 +05:30
Roopesh Chander
1fa38101c5 Xcode: Add WireGuardGoBridgemacOS target 2019-01-14 14:52:27 +05:30
Roopesh Chander
ad502331f0 Move iOS images and storyboard into UI/iOS/ folder 2019-01-14 14:52:27 +05:30
Roopesh Chander
6ec9e94a39 Xcode: Rename iOS targets to include an 'iOS' suffix
But keep the PRODUCT_NAME as 'WireGuard', not 'WireGuardiOS'.
2019-01-14 14:52:26 +05:30
Roopesh Chander
8715b66caa xcconfig: Make app id platform-specific 2019-01-14 14:52:26 +05:30
Roopesh Chander
1d5b04c822 On-Demand: Add support for macOS-specific values 2019-01-14 14:52:26 +05:30
Roopesh Chander
230713a6fc import Foundation instead of UIKit wherever possible 2019-01-14 14:52:26 +05:30
Jason A. Donenfeld
809c64b219 Version bump 2019-01-08 02:13:44 +01:00
Jason A. Donenfeld
a266171157 PacketTunnelSettingsGenerator: use 127.0.0.1 as dummy address
It turns out that using 0.0.0.0 somehow conflicts with DNS lookups when
CLAT is in use.
2019-01-08 01:51:12 +01:00
Jason A. Donenfeld
83cc642b34 Avoid dynamic MTU calculations for now 2019-01-07 19:23:39 -05:00
Jason A. Donenfeld
7bf3d7b09d Update copyright 2019-01-07 19:23:39 -05:00
Jason A. Donenfeld
25676c461f Version bump 2018-12-28 19:43:11 +01:00
Jason A. Donenfeld
013d603109 Rework DNS and routes in network extension
The DNS resolver prior had useless comments, awful nesting, converted
bytes into strings and back into bytes, and generally made no sense.
That's been rewritten now.

But more fundumentally, this commit made the DNS resolver actually
accomplish its objective, by passing AI_ALL to it. It turns out, though,
that the Go library isn't actually using GAI in the way we need for
parsing IP addresses, so we actually need to do another round, this time
with hints flag as zero, so that we get the DNS64 address.

Additionally, since we're now binding sockets to interfaces, we can
entirely remove the excludedRoutes logic.
2018-12-28 19:38:03 +01:00
Jason A. Donenfeld
1de0f5746c Version bump
A Christmas Special, for TestFlight, and possibly for release if things
go well there.
2018-12-26 01:41:22 +01:00
Jason A. Donenfeld
0cc55db4cb NetworkExtension: rescope socket instead of tearing down socket 2018-12-26 01:17:55 +01:00
Roopesh Chander
a380f17974 minizip: Remove zip encryption code
We can now remove -DNOCRYPT cflag while compiling
2018-12-25 12:48:04 +05:30
Roopesh Chander
00c07377ed Tunnel edit: Fix crash
This fixes a crash that happens when you:

 1. Scroll to the end of the Edit screen
 2. Delete a peer
 3. Toggle the Activate On Demand switch
2018-12-24 13:01:21 +05:30
Eric Kuck
00a7eabed2 SwitchCell nits 2018-12-22 15:32:29 -06:00
Eric Kuck
89fd494291 Fix typo for simulator builds 2018-12-22 14:32:39 -06:00
Roopesh Chander
3ca5712ac1 Remove more comments 2018-12-23 00:31:44 +05:30
Jason A. Donenfeld
b68b3785be Rely on availability of fd only after setting network settings 2018-12-22 18:29:54 +01:00
Jason A. Donenfeld
a60b2a37d0 Retain aggressive socket reestablishment for now
This can be reverted once we've done more testing.
2018-12-22 15:45:09 +01:00
Roopesh Chander
2e37d511db Don't set username on NETunnelProviderProtocol
The username corresponds to the Account field in iOS system VPN UI,
but if we don't set it, the field is not shown, so setting it isn't
really required.
2018-12-22 16:13:31 +05:30
Roopesh Chander
09a96ec2a8 TunnelErrors: Add alert text for PacketTunnelProviderError 2018-12-22 16:05:43 +05:30
Roopesh Chander
baf99733f5 TunnelStatus: Absorb NEVPNStatus+CustomStringConvertible 2018-12-22 15:46:28 +05:30
Jason A. Donenfeld
08daec71aa Also refresh status 2018-12-22 07:07:53 +01:00
Jason A. Donenfeld
470da3ffcc Reassign tunnelProvider if it changes from outside the app 2018-12-22 06:56:12 +01:00
Eric Kuck
8fb8d9a9d2 All models now Equatable 2018-12-21 22:57:17 -06:00
Jason A. Donenfeld
053c655fc0 Clean up trailing whitespace 2018-12-22 05:30:35 +01:00
Jason A. Donenfeld
27cd93a898 Do not crash if we can't get socket.fileDescriptor 2018-12-22 05:13:04 +01:00
Eric Kuck
3269c54718 Removing a tunnel from iOS's settings is now immediately reflected in app 2018-12-21 21:59:43 -06:00