Repository navigation
Add freebsd userland platform - #715
Weiteng Chen (CvvT) wants to merge 37 commits into
Conversation
…or FreeBSD builds
Replace Linux-specific tgkill/gettid with portable pthread_kill/pthread_self for FreeBSD, allowing the signal handler integration test to run on both platforms.
This is a purely-userland platform implementation (like Linux and Windows userland) that requires std, so it should be excluded from the no_std confirmation check.
On FreeBSD, opening /dev/tunN resets the interface configuration. This adds programmatic IP configuration via socket ioctls (SIOCSIFADDR, SIOCSIFDSTADDR, SIOCSIFNETMASK, SIOCSIFFLAGS) after opening the TUN device, so tests get a properly configured interface. - Add Socket syscall number to FreeBSD syscall table - Add ioctl constants and structs (SockaddrIn, IfReq) for interface config - Add configure_tun_interface() that applies IP config via ioctls - Change FreeBSDUserland::new() to accept TunConfig instead of bare name - Re-export TunConfig from litebox_platform_multiplex - Update test code to construct TunConfig on FreeBSD
This reverts commit afd299b.
|
🤖 SemverChecks 🤖 No breaking API changes detected Note: this does not mean API is unchanged, or even that there are no breaking changes; simply, none of the detections triggered. |
|
This branch is keeping around a huge file in its history. From git-sizer 53d15841d1aec43627b3913d9990490120e67847 (6206df7:litebox_shim_linux/litebox_shim_linux-.core) Current tip of the branch as of this comment is 1130be8 I'm force-pushing a rewritten history for this branch that deletes that file, which seems unintentional anyways based on ce36346 which deletes the file immediately after it was committed. Nonetheless, I'm writing all these commit hashes above so that we can get back to them if need be via the GitHub UI if we really need them, but in parallel, the rewritten branch will make sure our regular clones don't actually pull this up unnecessarily. |
1130be8 to
eb05b2b
Compare
We used to have freebsd userland platform but was removed while undergoing drastic changes of platform interfaces. Now that we have more stable interfaces and with the help of agents, we should be able to maintain one more platform. This PR is drafted by agent based on our previous implementation.