Conrad Kramer
9dc10544b9
Embed wintun inside of the Windows binary
...
Burrow writes the driver to a temporary file and then loads it.
2023-06-05 01:12:21 -07:00
Conrad Kramer
a502e2132c
Only run build script when necessary
...
The build script should only run if one of the generated files
is changed.
2023-06-05 01:12:21 -07:00
Conrad Kramer
cc30fcd34c
✨ Create set_ipv6_addr
...
This adds a new method for setting an ipv6 address on an interface
2023-06-03 13:14:47 -04:00
Conrad Kramer
b94356dfb7
Set clippy as the default build task
...
Also configure CodeLLDB as a recommended extension.
2023-06-03 13:00:06 -04:00
Conrad Kramer
e51f9eb4fd
Update Getting Started document
...
This adds Windows and macOS instructions among other improvements.
2023-06-03 13:00:06 -04:00
sporeball
bf36a822a0
Create initial GETTING_STARTED.md
...
This is the very first draft
2023-06-03 13:00:06 -04:00
Conrad Kramer
3c226c81cc
Use fewer dependencies in Windows build script
...
This removes the dependencies on the platform crate as well as the
sha256 crate, opting for the sri crate instead to check file integrity.
2023-05-29 17:13:47 -04:00
JettChenT
5baf86d975
add cfg test
...
this adds cfg-test for
test modules
2023-05-26 14:02:10 -04:00
Conrad Kramer
cdea9eba8c
Run apt-get update in CI
...
This fixes a build failure caused by an outdated package cache.
2023-05-25 00:14:34 -04:00
JettChenT
727798a7da
TunInterface implementations for MacOS
...
This adds TunInterface Implementations for MacOS.
With reference to the XNU kernel source and the
linux implementation
2023-05-25 00:01:39 -04:00
Conrad Kramer
2e91838f46
Run burrow as root on Unix platform
...
This is needed because you need to be root in order to create a tun
interface on macOS, and you need CAP_NET_ADMIN on Linux.
2023-05-13 13:15:41 -04:00
Conrad Kramer
8007e88b53
Enable IPv4 configuration on macOS
...
This enables getting and setting the IPv4 address on tun interfaces
on macOS
2023-05-13 13:15:41 -04:00
Conrad Kramer
101470d17c
Fix requesting VPN permission on macOS
...
The protocol configuration is copied when set, so it should be set
after it is configured
2023-05-13 13:15:41 -04:00
Conrad Kramer
c8bdf1bcbe
Remove unneeded Github Actions step
...
Xcode will both use and create the cache during the build.
2023-05-13 13:15:41 -04:00
Conrad Kramer
bea8af0d66
Cache Swift packages in Github Actions
...
This is helpful now that SwiftLint is a package dependency.
2023-05-09 23:01:36 -04:00
Conrad Kramer
3c30a4b336
Enable SwiftLint inside of Xcode
...
This commit also fixes all linter warnings and errors.
2023-05-09 23:01:36 -04:00
Conrad Kramer
941d465570
Document the Rust Xcode build script
...
The Bash source is a little hard to read.
2023-05-09 23:01:36 -04:00
Conrad Kramer
cf95ac819c
Share *RawFd trait implementations on Unix
...
They were previously only present on Apple platforms.
2023-05-09 23:01:36 -04:00
Conrad Kramer
c1507ba37f
Fix SwiftUI view model updating
...
The reflection data is needed by SwiftUI in order to operate correctly.
2023-05-09 23:01:36 -04:00
Conrad Kramer
b3a540fc48
Add support for starting and stopping the tunnel
...
This commit introduces the Tunnel view model object which has
support for asking for permission, starting and stopping the
tunnel. It automatically updates its state and publishes
changes as an ObservableObject.
2023-05-09 23:01:36 -04:00
Conrad Kramer
eeb0130156
Add Swift module for libburrow
...
This commit also renames the app target to App.
2023-05-09 23:01:36 -04:00
Cara Salter
5e265632a3
tun/test: Add #[throws] to netmask test
...
Enables tests to avoid using `.unwrap()`.
Co-authored-by: Conrad Kramer <conrad@conradkramer.com>
2023-04-29 20:14:18 -04:00
Cara Salter
4a0d53bdd3
tun: Fix implementation tests for netmask
...
Note that there needs to be an address set on the interface prior to
assigning a netmask.
2023-04-29 20:14:18 -04:00
Cara Salter
6ea4b596c2
tun: Initial work on getting/setting netmask
...
Seems to run into an issue with setting netmasks like 255.0.0.0 with an
"AddressNotAvailable" error
2023-04-29 20:14:18 -04:00
Cara Salter
c444bf293e
tun: Create integration tests for MTU
...
Tests are good, y'all :)
2023-04-29 19:07:29 -04:00
Cara Salter
a13b2243e6
tun: Enable setting/getting of MTU
...
Works similarly to getting and setting IP addresses, can pretty much be
copy-pasted for the rest of the settings.
2023-04-29 19:07:29 -04:00
Conrad Kramer
4b0965b846
Build burrow library into iOS and macOS app
...
This commit adds a build script, build-rust.sh, which compiles the
burrow crate from inside of Xcode. The network extension then links
against this crate.
2023-04-29 16:46:23 -04:00
Conrad Kramer
d966c0ff77
Add packet tunnel provider entitlement
...
This entitlement is required to communicate with the VPN API on iOS and
macOS.
2023-04-29 16:46:23 -04:00
Conrad Kramer
4bf0fb639c
Switch to the Hack Club development team
...
This change switches the project over to the Hack Club developer team in
the Hack Club developer account. This is needed to get the app in
TestFlight.
2023-04-29 16:46:23 -04:00
Conrad Kramer
1ffa01df5b
Commit Xcode schemes to version control
...
This commit adds the Burrow and NetworkExtension schemes to version
control so that they can be shared across developers.
2023-04-29 16:46:23 -04:00
Conrad Kramer
1378eb7eb3
Implement IPv4 address configuration on Linux
...
This involved refactoring the crate structure to share code between
macOS and Linux. The new methods have not yet been implemented on
macOS, but they have todo!() placeholders.
2023-04-22 14:28:42 -04:00
Malted
45499da9c2
🔥 Show .gitignored files in VS Code
...
This disables a workspace setting that hid .gitignored files
2023-04-22 12:39:40 -04:00
Soumya Kushwaha
25b5ee2458
Create LICENSE.md
...
This commit adds the GPL-3 license to the repository.
2023-04-18 21:56:01 -04:00
Conrad Kramer
b37086e8f6
Add debugging task for VS Code
...
This allows you to launch the command line program into a debugger. This
commit also tweaks the CI and fixes a small error in the build script.
2023-04-16 21:19:46 -04:00
dav
02efa85a19
Fix types and fix build + clippy lints for linux
...
This commit changes `copy_if_name` to take a c_char.
2023-04-16 16:44:18 -04:00
Conrad Kramer
47f1312666
Add initial README
...
It is short and sweet for now
2023-04-10 18:44:02 -04:00
Conrad Kramer
39c3600022
Update Github Actions to run cargo directly
...
The cargo action is deprecated so this change switches to using a bash
invocation
2023-04-10 18:43:41 -04:00
Conrad Kramer
c1e7415871
Initial commit
2023-04-10 16:49:23 -04:00