Roopesh Chander
be25d9d491
Xcode: Make Xcode build libwg-go.a automatically
...
This is based on Jeroen Leenarts' work (commit a3cdb84
)
and Jason Donenfeld's work (commit 9d01829
).
To reproduce:
In Xcode, add a new target called 'WireGuardGoBridge' with
the Cross-platform > External build system template. Configure
that target with the 'make' build tool and ask it to build on the
wireguard-go-bridge directory.
The Makefile in wireguard-go-bridge is already configured to
handle being called from Xcode as an external build system.
In WireGuardNetworkExtension's build phases, add a dependancy to
WireGuardGoBridge, and ask it to link to libwg-go.a (the make command
shall generate this archive). Add libwg-go.a as a library to be linked
with.
Edit the Xcode pbxproj file and in the file reference entry for
libwg-go.a, set path as "libwg-go.a" and sourceTree as
BUILT_PRODUCTS_DIR.
2018-10-27 19:07:16 +05:30
Roopesh Chander
69a35ec3ff
VPN: Fix DNS resolution API
2018-10-27 19:07:16 +05:30
Roopesh Chander
0f92228136
NE: Add bridging header
2018-10-27 19:07:16 +05:30
Roopesh Chander
4eb13921d2
NE: Remove entitlements we don't need for now
2018-10-27 19:07:16 +05:30
Roopesh Chander
b41c6b49d5
NE: Include the network extension in the project
2018-10-27 19:07:16 +05:30
Roopesh Chander
02fb23bb45
VPN: Perform DNS resolution before starting the tunnel
2018-10-27 19:07:16 +05:30
Roopesh Chander
5cb2558fea
Tunnel detail: Account for status section in peer index calculations
2018-10-27 19:07:16 +05:30
Roopesh Chander
373adc578c
VPN: DNSResolver: A class that does DNS resolution using getaddrinfo
2018-10-27 19:07:16 +05:30
Roopesh Chander
c1cfed7739
Tunnel detail: UI for activating and deactivating a tunnel
2018-10-27 19:07:16 +05:30
Roopesh Chander
59133f5467
VPN: Activating, deactivating and tracking the status
2018-10-27 19:07:16 +05:30
Roopesh Chander
d586f1d619
Tunnel detail: Fix comment
2018-10-27 19:07:16 +05:30
Roopesh Chander
8c2b9432d7
Model: Add a version number to the tunnel
2018-10-27 19:07:01 +05:30
Roopesh Chander
ac60a97dee
VPN: Adding, modifying and deleting actual NETunnelProviderManager instances
2018-10-27 15:13:02 +05:30
Roopesh Chander
f6620fed9a
Import: Support for importing a config file from file providers
2018-10-27 15:13:02 +05:30
Roopesh Chander
9d340ab873
iPad: Fix modal presentation style
2018-10-27 15:13:02 +05:30
Roopesh Chander
9aa0c1b1f8
iPad: Make sure the navigation bar is visible in the detail view
2018-10-27 15:13:02 +05:30
Roopesh Chander
b2ad15da55
Tunnel editing: Delegate should also report when editing is cancelled
2018-10-27 15:13:02 +05:30
Roopesh Chander
4e2a1aa07a
Import: Support for opening a .conf file in the app
2018-10-27 15:13:02 +05:30
Roopesh Chander
44a2eff1e0
Tunnel editing: Separate init for creation and modification
2018-10-27 15:13:02 +05:30
Roopesh Chander
d3a9e79149
Parser: Interface name can be added after parsing
2018-10-27 15:13:02 +05:30
Roopesh Chander
db72e9522a
Model: Allow creating an interface with empty name
...
But don't allow such a tunnel to be added to the tunnel manager.
(We'll need to create an interface with an empty name when we're reading QR codes.)
2018-10-27 15:13:02 +05:30
Roopesh Chander
e8633b243d
Info.plist: support for opening wg-quick config (.conf) files
2018-10-27 15:13:02 +05:30
Roopesh Chander
8561b0f84c
Info.plist: Export the config file type declaration
2018-10-27 15:13:02 +05:30
Roopesh Chander
ab3fab4024
Config file: Parsing a wg-quick config file
2018-10-27 15:13:01 +05:30
Roopesh Chander
903fd02eb2
Model: MTU should be a 16-bit integer
2018-10-27 15:13:01 +05:30
Roopesh Chander
8423814876
VPN: Tunnel container shall provide direct access to the configuration object
2018-10-27 15:13:01 +05:30
Roopesh Chander
34cc14fefa
Tunnel editing: Modifying a tunnel configuration
2018-10-27 15:13:01 +05:30
Roopesh Chander
61cf3f8a5b
Tunnel creation: After saving the new tunnel, show the detail view
2018-10-27 15:13:01 +05:30
Roopesh Chander
ebb0dcd923
Tunnel detail: Don't show fields that have empty value
2018-10-27 15:13:01 +05:30
Roopesh Chander
e2663822bb
Tunnel creation: Public key is uneditable
2018-10-27 15:13:01 +05:30
Roopesh Chander
ad9e9b6666
Tunnel creation: An uneditable field's value should be grey as well
2018-10-27 15:13:01 +05:30
Roopesh Chander
9120e27f2b
Tunnel creation: Generate key pair
2018-10-27 15:13:01 +05:30
Roopesh Chander
423fc4f9e0
Tunnel creation: Compute public key from private key as the text is being edited
2018-10-27 15:13:01 +05:30
Roopesh Chander
91ea0fe7e5
Tunnel view model: Populate interface's public key
2018-10-27 15:13:01 +05:30
Roopesh Chander
a4016afd7c
Model: Interface: Add a public key computed property
2018-10-27 15:13:01 +05:30
Roopesh Chander
1f166c8d3e
Crypto: Swift wrapper for the Curve25519 C code
2018-10-27 15:13:01 +05:30
Jeroen Leenarts
3bae6c6f01
Crypto: Curve25519: Add explicit cast to supress conversion warning.
2018-10-27 15:13:01 +05:30
Roopesh Chander
c68c214cbf
Crypto: Add Curve25519 C code to project
2018-10-27 15:13:01 +05:30
Jeroen Leenarts
c2abe9f011
Crypto: Add key generation functions
2018-10-27 15:13:01 +05:30
Roopesh Chander
e6eef48c69
Tunnel creation: Hide 'Exclude private IPs' switch till the feature is ready
2018-10-27 15:13:01 +05:30
Roopesh Chander
3adb6cc15f
Set Xcode template for smaller copyright headers
2018-10-27 15:13:01 +05:30
Roopesh Chander
e0a8aedc3d
Smaller copyright headers
2018-10-27 15:13:01 +05:30
Roopesh Chander
a8138efefe
Tunnel detail: Start off with the tunnel detail view
2018-10-27 15:13:01 +05:30
Roopesh Chander
cd7d6d5152
Tunnel view model: Add copy public key
2018-10-27 15:13:01 +05:30
Roopesh Chander
6d4151eafa
Tunnel creation: Variable renaming
...
s/interfaceEditFieldsBySection/interfaceFieldsBySection/g;
s/peerEditFieldsBySection/peerFieldsBySection/g;
2018-10-27 15:13:01 +05:30
Roopesh Chander
63f96b928a
Tunnel view model: The view model applies for both editing and viewing
2018-10-27 15:13:01 +05:30
Roopesh Chander
e8350b689f
Tunnels list: Update when a tunnel is added
2018-10-27 15:13:01 +05:30
Roopesh Chander
0324cebe2b
Tunnel creation: Saving a configuration
2018-10-27 15:13:01 +05:30
Roopesh Chander
e0ee01db78
Model: Use DNSServer in the Configuration model
2018-10-27 15:13:01 +05:30
Roopesh Chander
bebbaeaa93
Model for DNS server
2018-10-27 15:13:01 +05:30
Roopesh Chander
1b5ab9a72f
Model: Endpoint host should not have invalid characters
2018-10-27 15:13:01 +05:30
Roopesh Chander
c8fa6850c2
Model: listenPort and persistentKeepAlive should be 16-bit integers
2018-10-27 15:13:01 +05:30
Roopesh Chander
0fa97c38ed
Tunnel creation: Refactor by creating a separate view model
2018-10-27 15:13:01 +05:30
Roopesh Chander
9f252d4e37
Tunnel creation: Validate the data and prepare to save to a configuration
2018-10-27 15:13:01 +05:30
Roopesh Chander
42c3d63d13
Tunnel creation: Save typed values in a scratchpad
2018-10-27 15:13:01 +05:30
Roopesh Chander
d831bd44c4
Tunnel creation: Fix Persistent Keepalive label's look
2018-10-27 15:13:01 +05:30
Roopesh Chander
bbd13ad4cf
Tunnel creation: Start off with tunnel creation
2018-10-27 15:13:01 +05:30
Roopesh Chander
e337427eae
Model: Make InterfaceConfiguration and PeerConfiguration structs
2018-10-27 15:13:01 +05:30
Roopesh Chander
3e72dcade8
Model: Make it impossible to create invalid interface / peer configuration instances
2018-10-27 15:13:01 +05:30
Roopesh Chander
255b579f4d
Use Endpoint in the Configuration model
2018-10-27 15:13:01 +05:30
Roopesh Chander
7482ee8cf5
Model for an endpoint
2018-10-27 15:13:01 +05:30
Roopesh Chander
1d01d1f85d
Model: IPAddressRange: Converting to and from String
2018-10-27 15:13:01 +05:30
Roopesh Chander
945953177e
Model: Name should be part of the interface, not the tunnel
2018-10-27 15:13:01 +05:30
Roopesh Chander
e00a577bba
Tunnels list: Show an actions list when the '+' is tapped
2018-10-27 15:13:01 +05:30
Roopesh Chander
0593a77d7a
Tunnels list: Show data from the tunnels manager
2018-10-27 15:13:01 +05:30
Roopesh Chander
052ece53a3
Tunnels list: Make the table view style explicit
2018-10-27 15:13:01 +05:30
Roopesh Chander
b690de0d14
VPN: Add TunnelsManager to manage the tunnels in the app
2018-10-27 15:13:01 +05:30
Roopesh Chander
66307fd3c5
Bump deployment target to iOS 12.0
2018-10-27 15:13:01 +05:30
Roopesh Chander
f6054775ca
Use IPAddressRange in the Configuration model
2018-10-27 15:13:01 +05:30
Roopesh Chander
0948363d5b
Model for an IP Address range
2018-10-27 15:13:01 +05:30
Roopesh Chander
995320b958
Models for tunnel, interface and peer
2018-10-27 15:13:01 +05:30
Roopesh Chander
9443ee7e30
Configure the split-view controller to work in both iPhone and iPad
2018-10-27 15:13:01 +05:30
Roopesh Chander
50d660851a
Change copyright to WireGuard LLC
2018-10-27 15:13:01 +05:30
Roopesh Chander
0c7321e923
Use a split-view controller as the main (root) view controller
2018-10-27 15:13:01 +05:30
Roopesh Chander
887678bbf9
Move UI code into a separate platform-specific folder
...
Later, we hope to have a UI/macOS folder for developing a macOS client
from this codebase.
2018-10-27 15:13:01 +05:30
Roopesh Chander
8bd289c32f
Prepare for rewrite: Move WireGuardNetworkExtension into the new project folder
2018-10-27 15:13:01 +05:30
Roopesh Chander
be06f33acc
Use APP_ID in xcconfig rather than PRODUCT_BUNDLE_IDENTIFIER
...
This is required because when we add an app extension to the
project, there will be two PRODUCT_BUNDLE_IDENTIFIER fields
in our project file, so we cannot use xcconfig to set that
key directly.
2018-10-27 15:13:01 +05:30
Roopesh Chander
62987e7a32
Enable Network Extensions capability
2018-10-27 15:13:01 +05:30
Roopesh Chander
c33cf18a2f
Move App ID to Developer.xcconfig as well
2018-10-27 15:13:01 +05:30
Roopesh Chander
d15a2ee88e
Remove storyboard and create UI from code
2018-10-27 15:13:01 +05:30
Roopesh Chander
732309b2fe
Move DEVELOPMENT_TEAM into an xcconfig out of the git repo
...
This is so that other developers can work on this codebase
by copying Developer.xcconfig.template to Developer.xcconfig
and setting the DEVELOPMENT_TEAM to their respective Team IDs.
The Team IDs need not be checked into source control.
2018-10-27 15:13:01 +05:30
Roopesh Chander
c647572b18
Create a new project in Xcode
2018-10-27 15:13:01 +05:30
Roopesh Chander
8df3d72615
Prepare for rewrite: Remove UI and model code
2018-10-27 15:13:01 +05:30
Jeroen Leenarts
94afded0d2
Better handling of CIDR values.
2018-10-03 21:34:51 +02:00
Jeroen Leenarts
f27b4483da
Disable auto corrects and related helpers on UITextfields.
2018-10-03 10:54:41 +02:00
Jeroen Leenarts
e96a5c803f
Export qr scanned config to system settings.
2018-10-03 10:48:49 +02:00
Jason A. Donenfeld
0f553856b1
Remove extra comment cruft
2018-10-03 01:21:59 +02:00
Jeroen Leenarts
ae1af569d6
Remove a few prints, add some whitespace.
2018-10-02 22:36:39 +02:00
Jeroen Leenarts
03c257cfcc
Add some form of image for when no configurations are available.
2018-10-02 21:33:24 +02:00
Jeroen Leenarts
d12542a0c2
Dismiss qr scan vc on cancel.
2018-10-02 21:23:52 +02:00
Jeroen Leenarts
2fac395700
Handle persistentKeepAlive better.
2018-10-02 21:19:27 +02:00
Jeroen Leenarts
25ce33aa1f
Add Wireguard logo to bottom of settings.
2018-10-02 21:14:47 +02:00
Jeroen Leenarts
93b1f31d45
Extract WireGuardGo version at build time.
2018-10-02 21:14:18 +02:00
Jeroen Leenarts
6fa7d7bfbf
Deal with type body length warning.
2018-10-02 19:53:56 +02:00
Jeroen Leenarts
9ad7a2d3bd
Copy public key through context menu.
2018-10-02 19:39:26 +02:00
Jason A. Donenfeld
9d01829a98
Rewrite bridge build system
2018-10-02 19:15:03 +02:00
Jeroen Leenarts
41e0459521
Don't crash on failure to obtain version info and inform user on what is needed to be able to retrieve version info from the Go client.
2018-10-01 15:37:15 +02:00
Jeroen Leenarts
07be1c5398
Check and clear old configs on app start and app foreground.
2018-10-01 15:36:11 +02:00
Jeroen Leenarts
d8946babba
Add switch to info view controller.
2018-09-29 22:29:34 +02:00
Jeroen Leenarts
f29776d8e8
Deal with zero or empty input better.
2018-09-26 11:43:13 +02:00
Jeroen Leenarts
f669dd2015
Use trash instead of edit icon.
2018-09-26 11:27:24 +02:00
Jeroen Leenarts
406d72d8d9
Use message to extension to obtain version info.
2018-09-26 11:26:52 +02:00
Jeroen Leenarts
189e5181a5
Fixe base 64 regex format.
2018-09-26 11:23:13 +02:00
Jeroen Leenarts
ae7e655e37
Add explicit cast to supress conversion warning.
2018-09-26 11:22:15 +02:00
Jeroen Leenarts
3f9858a655
Fixe file/function related warnings.
2018-09-26 11:21:53 +02:00
Jeroen Leenarts
e27a3addb9
Not a gear but dots.
2018-09-26 10:24:52 +02:00
Jeroen Leenarts
2dc9392904
Present alert for title.
2018-09-25 22:30:16 +02:00
Jeroen Leenarts
0342415705
Remove default zeroes for listenPort and mtu.
2018-09-25 21:15:50 +02:00
Jeroen Leenarts
44c5b62c63
Ask for title when scaning a QR.
2018-09-25 20:59:15 +02:00
Jeroen Leenarts
c296d6ed01
Move copy button a bit up towards title line.
2018-09-25 20:15:44 +02:00
Jeroen Leenarts
de82b9f0af
Settnings icon.
2018-09-25 20:10:29 +02:00
Jeroen Leenarts
4fdc8244a1
Report the correct number of rows in the info table view.
2018-09-20 00:44:24 +02:00
Jeroen Leenarts
336f30e3c9
Get rid of a few cosmetic lines.
2018-09-20 00:43:57 +02:00
Jeroen Leenarts
72465bd341
Make sure a scanned config is actually saved and displayed.
2018-09-20 00:43:43 +02:00
Jeroen Leenarts
2e2ffe8634
Support some form of rotation.
2018-09-20 00:28:07 +02:00
Jeroen Leenarts
f51bef7673
Make sure correct layering is used to make sure hint remains visible.
2018-09-20 00:27:49 +02:00
Jeroen Leenarts
a8796ca627
Add add from file within app.
2018-09-19 16:02:20 +02:00
Jeroen Leenarts
78530ca1a4
Add edit/done buttons to have a more discoverable way to remove tunnels.
2018-09-18 22:46:28 +02:00
Jeroen Leenarts
58b4f81356
Move add button to bottom toolbar.
2018-09-18 22:19:03 +02:00
Jeroen Leenarts
7f9d9d4509
Add settings screen. Move export as zip to settings screen.
2018-09-18 21:49:59 +02:00
Jeroen Leenarts
4d7c20e146
Spelling improvement in log statement.
2018-09-16 22:43:31 +02:00
Jeroen Leenarts
c02c568000
Show public key on interface. Do not generate public key on peer on generate. Add public key copy buttons.
2018-09-16 22:38:32 +02:00
Jeroen Leenarts
fabb6c907a
Start a new peer without an allowed ips entry.
2018-09-16 21:23:20 +02:00
Jeroen Leenarts
e53c959c00
New peers should begin with zero peers.
2018-09-16 21:22:00 +02:00
Jeroen Leenarts
f9c2a82740
Back button for tunnel table view renamed to "Tunnels"
2018-09-16 21:19:14 +02:00
Jeroen Leenarts
65bf6d807d
Clean up old school headers.
2018-09-16 21:17:54 +02:00
Jeroen Leenarts
0ec034501e
We do not support "on demand" right now.
...
On demand has the effect of the VPN tunnel being started "on demand" based on a set of triggering criteria. Currently there are no criteria in place, so it always triggers.
2018-09-15 21:26:07 +02:00
Jeroen Leenarts
54aa2767b3
Add intermediate "Info" screen.
2018-09-15 21:24:52 +02:00
Jeroen Leenarts
39990ab480
Prevent crash on add and deletion of config.
2018-09-15 21:23:47 +02:00
Jeroen Leenarts
5df512d4fe
Re-center app icon.
2018-09-15 20:29:28 +02:00
Jeroen Leenarts
afd09fb5f0
Rename "WireGuard tunnels" to "WireGuard".
2018-09-15 20:27:14 +02:00
Jeroen Leenarts
562433468b
Fix provisioning.
2018-09-15 20:26:17 +02:00
Jason A. Donenfeld
55c0242e84
Update bundle names
2018-09-15 02:22:10 +02:00
Jeroen Leenarts
6c49e9151a
Switch copyright assignment from Jason to WireGuard LLC.
2018-09-06 07:42:23 +02:00
Jeroen Leenarts
2cd96f3105
Working zip import.
2018-09-05 20:25:54 +02:00
Jeroen Leenarts
989117a14c
Remove item from provider managers on delete.
2018-09-05 20:25:32 +02:00
Jeroen Leenarts
676bf6c312
Make sure to refresh provider managers after saving.
2018-09-05 20:10:09 +02:00
Jeroen Leenarts
dd899fa63d
Import of zip.
2018-09-03 00:08:34 +02:00
Jeroen Leenarts
ca35168dc9
Zip export.
2018-09-02 22:47:41 +02:00
Jeroen Leenarts
815f12c9a3
Add import and export logic.
2018-09-01 00:18:12 +02:00
Jeroen Leenarts
fc70a92800
Add addresses, dns and mtu to export string.
2018-08-31 21:40:24 +02:00
Jeroen Leenarts
9af7ceac2e
Add string conversion for tunnel config.
2018-08-29 15:01:59 +02:00
Jeroen Leenarts
217b632ccb
Initial merge of rc's work.
2018-08-27 22:32:47 +02:00
Jeroen Leenarts
acb7caa1f8
Move, modify and add key generation functions to project.
2018-08-27 13:38:50 +02:00
Eric Kuck
dc5a99e0a3
Reworked main tableview switch layout & logic
2018-08-22 13:34:08 -05:00
Jeroen Leenarts
2c22d99d4d
Use a Switch on each tunnel cell.
2018-08-21 22:27:44 +02:00
Jeroen Leenarts
5728a525c7
Line selection configures the tunnel.
2018-08-21 20:04:14 +02:00
Eric Kuck
5ef1656102
Added ability to add tunnels with a QR code scan. Logic in place to parse conf files as well.
2018-08-21 11:00:41 -05:00
Jeroen Leenarts
93e2264751
Extend validators to work for DNS entries as well.
2018-08-16 22:41:45 +02:00
Jeroen Leenarts
5363be2403
Use `commaSeparatedToArray` utility everywhere.
2018-08-16 22:39:08 +02:00
Jeroen Leenarts
792301e50e
If the selected tunnel is not "enabled", make it enabled.
2018-08-16 22:05:22 +02:00
Jeroen Leenarts
11b43206ff
Add on demand rule.
2018-08-16 22:04:35 +02:00
Jeroen Leenarts
6b57ca0d98
Do not perform optional try, this ate errors in the addressess and DNS input.
2018-08-16 22:03:40 +02:00
Eric Kuck
475b6abb5b
Added validation before saving any tunnels
...
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
2018-08-15 17:34:16 -05:00
Jeroen Leenarts
d6fcc10bd9
Remove old import.
2018-08-15 19:41:19 +02:00
Jeroen Leenarts
412b21a7ce
Log on VPNStatusDidChange.
2018-08-12 21:50:54 +02:00
Jeroen Leenarts
6d977e13b2
Config tweaking.
2018-08-12 21:49:38 +02:00
Jeroen Leenarts
9ce5fccbd3
Add back addresses.
2018-08-12 21:37:56 +02:00
Jeroen Leenarts
ca5d40c0d8
Fix config generation.
2018-08-09 22:45:28 +02:00
Jeroen Leenarts
126ea25ef1
Switch from using a single VPN manager to a VPN manager per configuration.
2018-08-08 07:04:42 +02:00
Jeroen Leenarts
1a4929964c
Add tunnel provider identifier.
2018-08-08 06:59:56 +02:00
Jeroen Leenarts
d449817a45
Generate split allowed IPs in protocol configuration.
2018-08-07 21:33:19 +02:00
Jeroen Leenarts
cf0ccbf0d1
Remove Address and related code.
2018-08-06 23:28:52 +02:00
Jeroen Leenarts
bde972d96f
Remove incorrect core data model fields.
2018-08-06 09:04:54 +02:00
Jeroen Leenarts
a6b2f2edca
Add provider configuration generation.
2018-08-06 09:04:29 +02:00
Jeroen Leenarts
ea44b6de20
Fix binding.
2018-08-05 19:05:41 +02:00
Jeroen Leenarts
2941f0eb71
Add default allowed IPs.
2018-08-05 15:58:01 +02:00
Jeroen Leenarts
675a17f51a
Assign correct copyright.
2018-08-05 07:48:36 +02:00
Jeroen Leenarts
1dc70297f6
A server address is required for proper saving of protocol configuration.
2018-08-04 22:49:37 +02:00
Jeroen Leenarts
43d5534d22
Remove some silly TODOs.
2018-08-04 22:49:03 +02:00
Jeroen Leenarts
a4db2d4f3e
Add NETunnelProviderManager management to AppCoordinator.
2018-08-04 21:28:19 +02:00
Jeroen Leenarts
0f1aa701df
Change copyright notice.
2018-07-15 11:55:41 +02:00
Jeroen Leenarts
6344f3d25f
Start wire-up of logging and tunnel system.
2018-07-07 22:54:44 +02:00
Jason A. Donenfeld
fa8338ef7a
Fix bizarre name
2018-06-23 02:15:43 +02:00
Jeroen Leenarts
bb1e05f9db
Objective-C wrapper around WireguardGo.
2018-06-22 08:23:39 +02:00
Jeroen Leenarts
25bcb708ae
Allow adding and deleting peers.
2018-05-29 22:47:52 +02:00
Jeroen Leenarts
42f278ff49
Allow adding unvalidated config.
2018-05-29 22:21:44 +02:00
Jeroen Leenarts
0b2f004f62
Wire up TunnelConfigurationTableViewController.
2018-05-27 22:38:44 +02:00
Jeroen Leenarts
a59215110b
A config having zero peers is allowed.
2018-05-27 14:23:36 +02:00
Jeroen Leenarts
a0cf47606a
We are dealing with not just any tunnel, but with WireGuard tunnels.
2018-05-27 14:23:13 +02:00
Jeroen Leenarts
7ce3288939
Deal with final folder name issues due to Apple's case insensitive case preserving behavior.
2018-05-27 14:20:15 +02:00
Jeroen Leenarts
b98ade57c4
Add trash can icon.
2018-05-26 09:41:19 +02:00
Jeroen Leenarts
6bf3d5021e
Some casing trouble in WireGuard strings.
2018-05-26 09:41:09 +02:00
Jeroen Leenarts
1c43581ce5
Everything is a tunnel.
2018-05-26 09:17:36 +02:00
Jeroen Leenarts
6f59c27220
Add bare bones `ProfileConfigurationTableViewController`.
2018-05-24 22:07:04 +02:00
Jeroen Leenarts
e528429f0c
Basic setup of ConnectionsTableViewController.
2018-05-24 20:16:17 +02:00