Commit graph

33 commits

Author SHA1 Message Date
Conrad Kramer
28af9003d0 merge boringtun into burrow 2023-10-15 22:27:05 -07:00
Jett Chen
e643d9dd41 Switch logging to use tracing instead of log
Tracing has support for intervals and a great os_log integration.
2023-09-03 01:06:34 +08:00
dav
f869cbdb53 Implement sending commands via Unix sockets 2023-08-26 11:51:56 -07:00
Sam Poder
c8df4b860d Set/get broadcast address in TunInterface
Modelled after TunInterface's IPV4 logic.
Uses SIOCGIFBRDADDR & SIOCSIFBRDADDR.
View https://man7.org/linux/man-pages/man7/netdevice.7.html.
2023-08-26 10:00:18 -07:00
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
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
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
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
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
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
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
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
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
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
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
cf95ac819c Share *RawFd trait implementations on Unix
They were previously only present on Apple platforms.
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
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
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
c1e7415871 Initial commit 2023-04-10 16:49:23 -04:00