mirror of https://github.com/ipxe/ipxe.git
[http] Allow HTTP connection to be described using an EFI device path
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/171/head
parent
f2c826179a
commit
b50ad5f09a
|
@ -56,6 +56,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||||
#include <ipxe/profile.h>
|
#include <ipxe/profile.h>
|
||||||
#include <ipxe/vsprintf.h>
|
#include <ipxe/vsprintf.h>
|
||||||
#include <ipxe/errortab.h>
|
#include <ipxe/errortab.h>
|
||||||
|
#include <ipxe/efi/efi_path.h>
|
||||||
#include <ipxe/http.h>
|
#include <ipxe/http.h>
|
||||||
|
|
||||||
/* Disambiguate the various error causes */
|
/* Disambiguate the various error causes */
|
||||||
|
@ -519,6 +520,18 @@ __weak int http_block_read_capacity ( struct http_transaction *http __unused,
|
||||||
return -ENOTSUP;
|
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 */
|
/** HTTP data transfer interface operations */
|
||||||
static struct interface_operation http_xfer_operations[] = {
|
static struct interface_operation http_xfer_operations[] = {
|
||||||
INTF_OP ( block_read, struct http_transaction *, http_block_read ),
|
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 ),
|
http_block_read_capacity ),
|
||||||
INTF_OP ( xfer_window_changed, struct http_transaction *, http_step ),
|
INTF_OP ( xfer_window_changed, struct http_transaction *, http_step ),
|
||||||
INTF_OP ( intf_close, struct http_transaction *, http_close ),
|
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 */
|
/** HTTP data transfer interface descriptor */
|
||||||
|
|
Loading…
Reference in New Issue