[PATCH v2 2/7] net: wget: add definition of struct wget_http_info
Heinrich Schuchardt
xypron.glpk at gmx.de
Sat Nov 16 21:29:05 CET 2024
On 11/11/24 22:08, Adriano Cordova wrote:
> The struct wget_http_info exposes the HTTP information of the last HTTP
> request issued by wget, and it controls whether the efi bootdevice is set,
> and whether the buffer size needs to be checked (lwip stack only). This
> information is otherwise discarded. The wget_http_info struct can be used
> by HTTP drivers to have more control over HTTP requests.
>
> Signed-off-by: Adriano Cordova <adrianox at gmail.com>+
Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>
> Changes in v2:
> - Add Sphinx style documentation
> - Change status_code in wget_http_info from ulong to u32
>
> include/net-common.h | 48 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 48 insertions(+)
>
> diff --git a/include/net-common.h b/include/net-common.h
> index fd7c5e7b48..8985b81c2d 100644
> --- a/include/net-common.h
> +++ b/include/net-common.h
> @@ -8,6 +8,7 @@
> #include <env.h>
> #include <hexdump.h>
> #include <linux/if_ether.h>
> +#include <linux/sizes.h>
> #include <linux/types.h>
> #include <rand.h>
> #include <time.h>
> @@ -506,4 +507,51 @@ int wget_with_dns(ulong dst_addr, char *uri);
> bool wget_validate_uri(char *uri);
> //int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]);
>
> +/**
> + * enum wget_http_method - http method
> + */
> +enum wget_http_method {
> + WGET_HTTP_METHOD_GET,
> + WGET_HTTP_METHOD_POST,
> + WGET_HTTP_METHOD_PATCH,
> + WGET_HTTP_METHOD_OPTIONS,
> + WGET_HTTP_METHOD_CONNECT,
> + WGET_HTTP_METHOD_HEAD,
> + WGET_HTTP_METHOD_PUT,
> + WGET_HTTP_METHOD_DELETE,
> + WGET_HTTP_METHOD_TRACE,
> + WGET_HTTP_METHOD_MAX
> +};
> +
> +/**
> + * define MAX_HTTP_HEADERS_SIZE - maximum headers buffer size
> + *
> + * When receiving http headers, wget fills a buffer with up
> + * to MAX_HTTP_HEADERS_SIZE bytes of header information.
> + */
> +#define MAX_HTTP_HEADERS_SIZE SZ_64K
> +
> +/**
> + * struct wget_http_info - wget parameters
> + * @method: HTTP Method. Filled by client.
> + * @status_code: HTTP status code. Filled by wget.
> + * @file_size: download size. Filled by wget.
> + * @buffer_size: size of client-provided buffer. Filled by client.
> + * @set_bootdev: set boot device with download. Filled by client.
> + * @check_buffer_size: check download does not exceed buffer size.
> + * Filled by client.
> + * @hdr_cont_len: content length according to headers. Filled by wget
> + * @headers: buffer for headers. Filled by wget.
> + */
> +struct wget_http_info {
> + enum wget_http_method method;
> + u32 status_code;
> + ulong file_size;
> + ulong buffer_size;
> + bool set_bootdev;
> + bool check_buffer_size;
> + u32 hdr_cont_len;
> + char *headers;
> +};
> +
> #endif /* __NET_COMMON_H__ */
More information about the U-Boot
mailing list