[PATCH v7 0/1] ShellPkg/DynamicCommand: add HttpDynamicCommand


Vladimir Olovyannikov
 

Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@...>
Reviewed-by: Maciej Rabeda <maciej.rabeda@...>
Cc: Zhichao Gao <zhichao.gao@...>
Cc: Maciej Rabeda <maciej.rabeda@...>
Cc: Jiaxin Wu <jiaxin.wu@...>
Cc: Siyuan Fu <siyuan.fu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Liming Gao <liming.gao@...>
Cc: Nd <nd@...>
Cc: Laszlo Ersek <lersek@...>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@...>

This patchset introduces an http client utilizing EDK2 HTTP protocol, to
allow fast image downloading from http/https servers.
HTTP download speed is usually faster than tftp.
The client is based on the same approach as tftp dynamic command, and
uses the same UEFI Shell command line parameters. This makes it easy
integrating http into existing UEFI Shell scripts.
Note that to enable HTTP download, feature Pcd
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections must be set to TRUE.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2860

PATCH v7 changes:
Address Laszlo' and Maciej's comments:
- Remove openssl submodule change accidentally added to the v6 patchset;
- Fix code style issues in the code overlooked in the previous patchset.

Vladimir Olovyannikov (1):
ShellPkg/DynamicCommand: add HttpDynamicCommand

ShellPkg/ShellPkg.dec | 1 +
ShellPkg/ShellPkg.dsc | 5 +
.../HttpDynamicCommand/HttpApp.inf | 58 +
.../HttpDynamicCommand/HttpDynamicCommand.inf | 63 +
.../DynamicCommand/HttpDynamicCommand/Http.h | 88 +
ShellPkg/Include/Guid/ShellLibHiiGuid.h | 5 +
.../DynamicCommand/HttpDynamicCommand/Http.c | 1694 +++++++++++++++++
.../HttpDynamicCommand/HttpApp.c | 61 +
.../HttpDynamicCommand/HttpDynamicCommand.c | 137 ++
.../HttpDynamicCommand/Http.uni | 116 ++
10 files changed, 2228 insertions(+)
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.h
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.uni

--
2.26.2.266.ge870325ee8


Laszlo Ersek
 

Hi Vladimir,

On 08/25/20 19:20, Vladimir Olovyannikov via groups.io wrote:
Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@...>
Reviewed-by: Maciej Rabeda <maciej.rabeda@...>
Cc: Zhichao Gao <zhichao.gao@...>
Cc: Maciej Rabeda <maciej.rabeda@...>
Cc: Jiaxin Wu <jiaxin.wu@...>
Cc: Siyuan Fu <siyuan.fu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Liming Gao <liming.gao@...>
Cc: Nd <nd@...>
Cc: Laszlo Ersek <lersek@...>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@...>

This patchset introduces an http client utilizing EDK2 HTTP protocol, to
allow fast image downloading from http/https servers.
HTTP download speed is usually faster than tftp.
The client is based on the same approach as tftp dynamic command, and
uses the same UEFI Shell command line parameters. This makes it easy
integrating http into existing UEFI Shell scripts.
Note that to enable HTTP download, feature Pcd
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections must be set to TRUE.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2860

PATCH v7 changes:
Address Laszlo' and Maciej's comments:
- Remove openssl submodule change accidentally added to the v6 patchset;
- Fix code style issues in the code overlooked in the previous patchset.
I'm currently working on some VCPU hotplug fixes for the upcoming
release. Before I return to your HttpDynamicCommand patch, I'll also
have to re-read my earlier comments for it. (In fact I can't tell
off-hand if I had remaining requests for your patch, or not -- hence the
need for re-reading my earlier comments.) It could take some time --
thanks for your patience.

Thanks,
Laszlo


Vladimir Olovyannikov
 

Hi Laszlo,
No worries, please let me know if you have any comments/concerns down the
road.

Thank you,
Vladimir

-----Original Message-----
From: Laszlo Ersek <lersek@...>
Sent: Wednesday, August 26, 2020 6:56 AM
To: devel@edk2.groups.io; vladimir.olovyannikov@...
Cc: Maciej Rabeda <maciej.rabeda@...>; Zhichao Gao
<zhichao.gao@...>; Jiaxin Wu <jiaxin.wu@...>; Siyuan Fu
<siyuan.fu@...>; Ray Ni <ray.ni@...>; Liming Gao
<liming.gao@...>; Nd <nd@...>; Samer El-Haj-Mahmoud
<Samer.El-Haj-Mahmoud@...>
Subject: Re: [edk2-devel] [PATCH v7 0/1] ShellPkg/DynamicCommand: add
HttpDynamicCommand

Hi Vladimir,

On 08/25/20 19:20, Vladimir Olovyannikov via groups.io wrote:
Signed-off-by: Vladimir Olovyannikov
<vladimir.olovyannikov@...>
Reviewed-by: Maciej Rabeda <maciej.rabeda@...>
Cc: Zhichao Gao <zhichao.gao@...>
Cc: Maciej Rabeda <maciej.rabeda@...>
Cc: Jiaxin Wu <jiaxin.wu@...>
Cc: Siyuan Fu <siyuan.fu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Liming Gao <liming.gao@...>
Cc: Nd <nd@...>
Cc: Laszlo Ersek <lersek@...>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@...>

This patchset introduces an http client utilizing EDK2 HTTP protocol,
to allow fast image downloading from http/https servers.
HTTP download speed is usually faster than tftp.
The client is based on the same approach as tftp dynamic command, and
uses the same UEFI Shell command line parameters. This makes it easy
integrating http into existing UEFI Shell scripts.
Note that to enable HTTP download, feature Pcd
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections must be set to
TRUE.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2860

PATCH v7 changes:
Address Laszlo' and Maciej's comments:
- Remove openssl submodule change accidentally added to the v6
patchset;
- Fix code style issues in the code overlooked in the previous
patchset.
I'm currently working on some VCPU hotplug fixes for the upcoming release.
Before I return to your HttpDynamicCommand patch, I'll also have to
re-read
my earlier comments for it. (In fact I can't tell off-hand if I had
remaining
requests for your patch, or not -- hence the need for re-reading my
earlier
comments.) It could take some time -- thanks for your patience.

Thanks,
Laszlo


Laszlo Ersek
 

On 08/25/20 19:20, Vladimir Olovyannikov via groups.io wrote:
Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@...>
Reviewed-by: Maciej Rabeda <maciej.rabeda@...>
Cc: Zhichao Gao <zhichao.gao@...>
Cc: Maciej Rabeda <maciej.rabeda@...>
Cc: Jiaxin Wu <jiaxin.wu@...>
Cc: Siyuan Fu <siyuan.fu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Liming Gao <liming.gao@...>
Cc: Nd <nd@...>
Cc: Laszlo Ersek <lersek@...>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@...>

This patchset introduces an http client utilizing EDK2 HTTP protocol, to
allow fast image downloading from http/https servers.
HTTP download speed is usually faster than tftp.
The client is based on the same approach as tftp dynamic command, and
uses the same UEFI Shell command line parameters. This makes it easy
integrating http into existing UEFI Shell scripts.
Note that to enable HTTP download, feature Pcd
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections must be set to TRUE.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2860

PATCH v7 changes:
Address Laszlo' and Maciej's comments:
- Remove openssl submodule change accidentally added to the v6 patchset;
- Fix code style issues in the code overlooked in the previous patchset.

Vladimir Olovyannikov (1):
ShellPkg/DynamicCommand: add HttpDynamicCommand

ShellPkg/ShellPkg.dec | 1 +
ShellPkg/ShellPkg.dsc | 5 +
.../HttpDynamicCommand/HttpApp.inf | 58 +
.../HttpDynamicCommand/HttpDynamicCommand.inf | 63 +
.../DynamicCommand/HttpDynamicCommand/Http.h | 88 +
ShellPkg/Include/Guid/ShellLibHiiGuid.h | 5 +
.../DynamicCommand/HttpDynamicCommand/Http.c | 1694 +++++++++++++++++
.../HttpDynamicCommand/HttpApp.c | 61 +
.../HttpDynamicCommand/HttpDynamicCommand.c | 137 ++
.../HttpDynamicCommand/Http.uni | 116 ++
10 files changed, 2228 insertions(+)
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.inf
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.h
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpApp.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.c
create mode 100644 ShellPkg/DynamicCommand/HttpDynamicCommand/Http.uni
Tested-by: Laszlo Ersek <lersek@...>

Thanks!
Laszlo