CC Jordan and Gary

On 01/17/17 04:33, Jiaxin Wu wrote:
> v2:
> * Rename the flag.
> 
> This flag is used to overwrite the PcdAllowHttpConnections
> value, then the platform can make a decision whether to allow
> HTTP connections or not.
> 
> Cc: Ye Ting <[email protected]>
> Cc: Fu Siyuan <[email protected]>
> Cc: Ruiyu Ni <[email protected]>
> Cc: Laszlo Ersek <[email protected]>
> Cc: Kinney Michael D <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Wu Jiaxin <[email protected]>
> ---
>  Nt32Pkg/Nt32Pkg.dsc | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/Nt32Pkg/Nt32Pkg.dsc b/Nt32Pkg/Nt32Pkg.dsc
> index 134afb8..88b1ea9 100644
> --- a/Nt32Pkg/Nt32Pkg.dsc
> +++ b/Nt32Pkg/Nt32Pkg.dsc
> @@ -2,11 +2,11 @@
>  # EFI/Framework Emulation Platform with UEFI HII interface supported.
>  #
>  # The Emulation Platform can be used to debug individual modules, prior to 
> creating
>  #    a real platform. This also provides an example for how an DSC is 
> created.
>  #
> -# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
>  # Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>
>  # (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>  #
>  #    This program and the accompanying materials
>  #    are licensed and made available under the terms and conditions of the 
> BSD License
> @@ -57,11 +57,21 @@
>    #
>    # Note: TLS feature highly depends on the OpenSSL building. To enable this 
>    #       feature, please follow the instructions found in the file 
> "Patch-HOWTO.txt" 
>    #       located in CryptoPkg\Library\OpensslLib to enable the OpenSSL 
> building first.
>    #
> -  DEFINE TLS_ENABLE      = FALSE
> +  DEFINE TLS_ENABLE = FALSE
> +  
> +  #
> +  # Indicates whether HTTP connections (i.e., unsecured) are permitted or 
> not.
> +  # -D FLAG=VALUE
> +  #
> +  # Note: If ALLOW_HTTP_CONNECTIONS is TRUE, HTTP connections is allowed. 
> Both 
> +  #       the "https://"; and "http://"; URI schemes are permitted. Otherwise, 
> HTTP 
> +  #       connections is denied. Only the "https://"; URI scheme is permitted.
> +  #
> +  DEFINE ALLOW_HTTP_CONNECTIONS = TRUE
>  
>  
> ################################################################################
>  #
>  # SKU Identification section - list of all SKU IDs supported by this
>  #                              Platform.
> @@ -252,10 +262,14 @@
>    gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
>  !if $(SECURE_BOOT_ENABLE) == TRUE || $(TLS_ENABLE) == TRUE
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
>  !endif
>  
> +!if $(ALLOW_HTTP_CONNECTIONS) == TRUE
> +  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
> +!endif
> +
>  !ifndef $(USE_OLD_SHELL)
>    gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 
> 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
>  !endif
>  
>  !if $(SECURE_BOOT_ENABLE) == TRUE
> 

Does the following combination make sense?

  TLS_ENABLE=FALSE and ALLOW_HTTP_CONNECTIONS=FALSE

In this case, only the https:// scheme would be accepted, however the
TLS facility that underlies HTTPS is missing. I think this would render
the HTTP stack useless. Is that correct?

I'm asking mainly for OVMF's sake. (I have nothing against this patch in
Nt32Pkg.) Namely, in OvmfPkg, I would dislike the additional complexity
of an ALLOW_HTTP_CONNECTIONS build flag. Instead, I think we should set
PcdAllowHttpConnections to TRUE, whenever HTTP_BOOT_ENABLE is defined
(and we shouldn't override the DEC default otherwise).

This would result in HTTP working with just -D HTTP_BOOT_ENABLE, and
both HTTP and HTTPS working with -D HTTP_BOOT_ENABLE -D TLS_ENABLE. I
don't see any downsides to always permitting HTTP in OVMF.

Thoughts?

If everyone agrees, then Jiaxin, can you please append a third patch for
OvmfPkg, which sets PcdAllowHttpConnections to TRUE whenever
HTTP_BOOT_ENABLE is TRUE?

(Note that in "OvmfPkgIa32X64.dsc", the setting should likely go under
[PcdsFixedAtBuild.X64].)

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to