Commit graph

124 commits

Author SHA1 Message Date
Conrad Kramer
17af030893 Run tests on Github Actions 2023-08-08 08:03:15 -07:00
Sam Poder
1907b11545 Move tests into a separate directory
Also run these tests on Github Actions as part of the PR request
flow.
2023-08-08 08:03:15 -07:00
Conrad Kramer
a2e93278c1 Create Dockerfile
Also adds a Github workflow to publish a Docker image
2023-07-04 20:15:27 -04:00
Sam Poder
631bbc8fb3 Expand description about Hack Club
This description is more inline with our copy in other places
2023-07-03 19:22:39 -04:00
Sam Poder
9eb661ebd5 Log when TunInterface is configured
This uses info from the log package.
2023-07-03 09:39:24 -04:00
JettChenT
beae8c0f79 Add Read and Write for Async TunInterface
Those features are implemented using AsyncFD. While write doesn't
require a mutable reference to self, read does.

Make Async Tun a feature

remove async tun from workspace

rename write/read to send/recv
2023-07-03 09:30:52 -04:00
dav
d3882bd008 TunInterfaceOptions -> TunOptions 2023-06-28 16:13:08 -04:00
dav
f20f56062c Fix unused import warning for Windows 2023-06-28 16:13:08 -04:00
dav
84f1d91d5c Implement TunInterfaceOptions 2023-06-28 16:13:08 -04:00
Sam Poder
da065b503f Log "Set" Actions in Tun (Linux)
I've used the log library and its info method.

I've also added but not used env-logger.
2023-06-27 15:42:36 -04:00
Conrad Kramer
32e4e9d1d7 Refactored MenuView into MenuItemToggleView
This change fixes some subtle state bugs in the switch handling by
making isOn a direct function of the Tunnel.
2023-06-23 20:29:52 -04:00
SerenityUX
5438542284 Added initial menu bar to macOS 2023-06-23 20:29:52 -04:00
Sam Poder
923bc9511d Ignore body is missing errors
It seems excessive to require an extended description to each commit,
such as the extended description being given here.
2023-06-23 16:21:58 -04:00
Dev380
e1b03fd0a8 Delete empty queue.rs
The queue.rs seems to be empty with no apparent purpose even as a stub so this commit removes it.
2023-06-23 16:02:16 -04:00
Soumya Kushwaha
efee4afc8d Add contributors section to README
This highlights people's contributions to Burrow.
2023-06-11 17:05:42 +02:00
Malted
f3d086effc 📝 Add long description to clap help
Replaces the None value with a descriptive str
2023-06-11 15:46:26 +01:00
Malted
1ec7ea7d3c 🐛 Update the target for the nix crate
I'm a silly little goose and forger 💀  it before
2023-06-10 22:01:17 +01:00
Malted
ba22ebc79f 🐛 Include function on all Darwin platforms
Builds the relevant ensure root function on all Apple devices
2023-06-10 22:01:17 +01:00
Malted
40cc0ba049 🛂 Check for required permissions
On Linux, checks for the `CAP_NET_ADMIN` capability.
On macOS, checks for root.
2023-06-10 22:01:17 +01:00
Malted
6bd8051c78 🔧 Add cargo release aliases
Adds the alias field with bb and rr defined as release aliases
2023-06-10 22:01:17 +01:00
Cara Salter
45fc74a3ba Add period to end of line
Improves consistency and grammatical correctness
2023-06-06 19:08:37 -04:00
Andromeda
4cc13ac2d3 Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Andromeda
a73599c268 Update README.md
Co-authored-by: Cara Salter <cara@devcara.com>
2023-06-06 19:08:37 -04:00
Andromeda
a99fd36081 Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Andromeda
a030a12bea Update README.md
Co-authored-by: Cara Salter <cara@devcara.com>
2023-06-06 19:08:37 -04:00
Andromeda
8221c224fd Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Andromeda
a4f8b61f53 Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Andromeda
ee066a2d36 Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Andromeda
706024617d Update README.md
Fixed git lint, implemented recommended changes
2023-06-06 19:08:37 -04:00
Sam Poder
f2af721deb Update tun/src/unix/linux/mod.rs
This fixes an accidental change I made, sorry!
2023-06-06 18:16:08 -04:00
Sam Poder
a73228cee0 Add Start Command
Command that will start burrow.
2023-06-06 18:16:08 -04:00
Sam Poder
e8704a2560 Add Start Command
This uses the subcommands feature, it was requested by Conrad.
2023-06-06 18:16:08 -04:00
Sam Poder
008ea9ec65 Enable derive on Clap
This let's us use the derive feature.
2023-06-06 18:16:08 -04:00
Sam Poder
d65b9a4c68 Begin CLI Work
Uses the Parser module + it sets up a help & version.
2023-06-06 18:16:08 -04:00
JettChenT
82c4d218d7 Add read and write functions for TunInterface
This adds read and write functionality for TunInterface.
2023-06-05 01:15:36 -07:00
Conrad Kramer
9aa1951575 Update CODEOWNERS
It should include Cara and Ben now
2023-06-05 01:12:21 -07:00
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