diff options
author | Michael Brown <mcb30@ipxe.org> | 2020-10-16 15:08:19 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2020-10-19 13:07:40 +0100 |
commit | b50ad5f09ab11f7d5b61a9a5c21637ea139fda08 (patch) | |
tree | 612f63e058acdb9cd838755f5a2461166febeac5 | |
parent | f2c826179aa03951c7da39211fc5754aa571d019 (diff) | |
download | ipxe-b50ad5f09ab11f7d5b61a9a5c21637ea139fda08.tar.gz |
[http] Allow HTTP connection to be described using an EFI device path
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/net/tcp/httpcore.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/net/tcp/httpcore.c b/src/net/tcp/httpcore.c index f755fb72d..01bb496b2 100644 --- a/src/net/tcp/httpcore.c +++ b/src/net/tcp/httpcore.c @@ -56,6 +56,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/profile.h> #include <ipxe/vsprintf.h> #include <ipxe/errortab.h> +#include <ipxe/efi/efi_path.h> #include <ipxe/http.h> /* Disambiguate the various error causes */ @@ -519,6 +520,18 @@ __weak int http_block_read_capacity ( struct http_transaction *http __unused, return -ENOTSUP; } +/** + * Describe as an EFI device path + * + * @v http HTTP transaction + * @ret path EFI device path, or NULL on error + */ +static EFI_DEVICE_PATH_PROTOCOL * +http_efi_describe ( struct http_transaction *http ) { + + return efi_uri_path ( http->uri ); +} + /** HTTP data transfer interface operations */ static struct interface_operation http_xfer_operations[] = { INTF_OP ( block_read, struct http_transaction *, http_block_read ), @@ -526,6 +539,8 @@ static struct interface_operation http_xfer_operations[] = { http_block_read_capacity ), INTF_OP ( xfer_window_changed, struct http_transaction *, http_step ), INTF_OP ( intf_close, struct http_transaction *, http_close ), + EFI_INTF_OP ( efi_describe, struct http_transaction *, + http_efi_describe ), }; /** HTTP data transfer interface descriptor */ |