kboot: Add HTTP client support - #2411
Open
aryanA101a wants to merge 12 commits into
Open
Conversation
Obtained from: https://git.musl-libc.org/cgit/musl Commit: 5122f9f3c99fee366167c5de98b31546312921ab Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Allow stand consumers to opt out of libsa-specific compiler flags while retaining the common standalone flags. A follow-up commit will use this for kboot's musl compatibility library, which needs to compile with musl's headers instead of libsa's. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Add host_unlink() to the host syscall interface. This will be used by the HTTP file sink in a follow-up commit to remove incomplete downloads. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
The kboot HTTP client added in a follow-up commit needs DNS resolution and Linux socket interfaces. Build a compatibility library from the required musl resolver and networking sources. Route allocation, errno, and syscalls through the existing kboot/libsa runtime. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
The kboot HTTPS client needs BearSSL's SSL client/engine and X.509 validation, which are not part of the BearSSL subset built into libsa for loader verification. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Build BearSSL's brssl_ta as a host tool and use it at build time to generate the trust-anchor table for kboot's HTTPS client from the system CA certificates. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Add the HTTP client and file sink used to download files over HTTP and HTTPS. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Add --http-test-get so the HTTP client can be exercised without entering the loader. This provides an entry point for the HTTP and HTTPS client tests added in a follow-up commit. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Add the build, fixtures, and local HTTP and TLS server support needed to exercise a test loader. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Cover response framing, failures, redirects, timeouts, and TLS behavior. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
Add HTTP client documentation and further work. Signed-off-by: Aryan Arora <aryanarora.w1@gmail.com>
|
Thank you for taking the time to contribute to FreeBSD! Some of files have special handling: Warning contrib: Contributed software usually managed by vendor branch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on: #2410
Add an HTTP/1.1 client implementation to kboot.
Project: https://wiki.freebsd.org/SummerOfCode2026Projects/AddNetworkingSupportToKboot
Sponsored by: Google LLC (GSoC 2026)