[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