[PATCH 0/7] wget: Expose wget to applications

Currently the wget command is focused on downloading the next boot stage. This series proposes to set wget as a general purpose HTTP request interface. This series splits the wget code from the wget command and exposes wget HTTP requests for applications to use. This comes in preparation for an efi HTTP driver.
This series proposes to expose wget via the following struct:
/* *method: Filled by client. Desired HTTP Method *status_code: Filled by wget. HTTP status code *file_size: Filled by wget. Download size *buffer_size: Filled by client. Size of client-provided buffer *set_bootdev: Filled by client. Set boot device with the next download *check_buffer_size: Filled by client. Check download does not exceed buffer size *hdr_cont_len: Filled by wget. Content length according to the HTTP headers *headers: Filled by wget. Client-provided buffer for headers */ struct wget_http_info { enum wget_http_method method; ulong status_code; ulong file_size; ulong buffer_size; bool set_bootdev; bool check_buffer_size; u32 hdr_cont_len; char* headers; };
extern struct wget_http_info wget_info;
The client can then set wget_info and call wget with wget_with_dns in a network stack agnostic way, providing the buffer and the uri as arguments.
Adriano Cordova (7): net: Kconfig: add CONFIG_WGET symbol net: wget: add definition of struct wget_http_info net: wget: Add a global struct wget_http_info net: wget: integrate struct wget_info into legacy wget code net: wget: make wget_with_dns return value compatible with its lwip version net/lwip: wget: put server_name and port into wget_ctx net/lwip: wget: integrate struct wget_info into wget code
cmd/Kconfig | 5 +-- include/net-common.h | 29 ++++++++++++++ net/Kconfig | 8 ++++ net/Makefile | 2 +- net/lwip/Makefile | 2 +- net/lwip/wget.c | 47 ++++++++++++++++++++--- net/net-common.c | 10 +++++ net/wget.c | 91 +++++++++++++++++++++++++++++++++----------- 8 files changed, 160 insertions(+), 34 deletions(-)
participants (1)
-
Adriano Cordova