On Thu, Aug 20, 2015 at 05:04:38AM +0000, Fu, Siyuan wrote:
> The patch is good, do you have access authority of edk2? Or I can help to 
> commit this patch.
> 
> Reviewed-by: Fu Siyuan <siyuan...@intel.com>
> 
I don't have the access right. That would be great if you can help me.

Thanks,

Gary Lin

> 
> 
> 
> -----Original Message-----
> From: Gary Ching-Pang Lin [mailto:g...@suse.com] 
> Sent: Thursday, August 20, 2015 11:49 AM
> To: edk2-devel@lists.01.org
> Cc: Laszlo Ersek; Justen, Jordan L; Fu, Siyuan
> Subject: [PATCH v3 1/2] NetworkPkg: Remove the hostname from the http request 
> URL
> 
> Per RFC7230, the URL must be a absolute-path when making a request directly 
> to the server. Since proxy is not supported now, all requests to the HTTP 
> driver are actually direct requests. This commit removes the scheme and the 
> hostname from the URL in the http request if the URL is an absolute-URI so 
> that the HTTP server can interpret the request properly.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Gary Ching-Pang Lin <g...@suse.com>
> Reviewed-by: Ye Ting <ting...@intel.com>
> ---
>  NetworkPkg/HttpDxe/HttpImpl.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c 
> index 545fe42..6684f77 100644
> --- a/NetworkPkg/HttpDxe/HttpImpl.c
> +++ b/NetworkPkg/HttpDxe/HttpImpl.c
> @@ -227,6 +227,7 @@ EfiHttpRequest (
>    CHAR16                        *HostNameStr;
>    HTTP_TOKEN_WRAP               *Wrap;
>    HTTP_TCP_TOKEN_WRAP           *TcpWrap;
> +  CHAR8                         *FileUrl;
>  
>    if ((This == NULL) || (Token == NULL)) {
>      return EFI_INVALID_PARAMETER;
> @@ -450,7 +451,23 @@ EfiHttpRequest (
>    //
>    // Create request message.
>    //
> -  RequestStr = HttpGenRequestString (HttpInstance, HttpMsg, Url);
> +  FileUrl = Url;
> +  if (*FileUrl != '/') {
> +    //
> +    // Convert the absolute-URI to the absolute-path
> +    //
> +    while (*FileUrl != ':')
> +      FileUrl++;
> +    if ((*(FileUrl+1) == '/') && (*(FileUrl+2) == '/')) {
> +      FileUrl += 3;
> +      while (*FileUrl != '/')
> +        FileUrl++;
> +    } else {
> +      Status = EFI_INVALID_PARAMETER;
> +      goto Error3;
> +    }
> +  }
> +  RequestStr = HttpGenRequestString (HttpInstance, HttpMsg, FileUrl);
>    if (RequestStr == NULL) {
>      Status = EFI_OUT_OF_RESOURCES;
>      goto Error3;
> --
> 2.1.4
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to