Hello Jiaxin,

We have tried both the methods and both failed. Do you have any other 
recommendation?

-Siva
-----Original Message-----
From: Wu, Jiaxin [mailto:[email protected]] 
Sent: Tuesday, July 31, 2018 7:14 AM
To: Sivaraman Nainar; Ye, Ting; Laszlo Ersek; [email protected]
Subject: RE: [edk2] reg: HTTP Request Failure over Internet

Hi Siva,

Thanks the report. 

>From the code review, it does the problem for HTTP protocol to route the 
>package over Internet. 

But I'm confused with your patch that how can you get the RouterAddr since 
there is no interface for HTTP protocol to get the RouterAddr? 

> +  HttpInstance->Tcp4->Routes (
> +            HttpInstance->Tcp4,
> +            FALSE,
> +            &HttpInstance->RemoteAddr,
> +            &Tcp4AP->SubnetMask,
> +            &HttpInstance->RouterAddr
> +            );
> +

So, I prefer it's the UEFI Spec limitation that HTTP protocol doesn't provide 
us the interface to set the router info instead of setting it during HTTP 
configuration. To mitigate the issue,  below two solution/workaround can be 
tried:
1) Ip4Config2 protocol can be leveraged by your HTTP application to register 
one valid Ip4Gateway into the default route table (just like HttpBootDxe -- 
HttpBootRegisterIp4Gateway()). The IP policy will route the packet by using the 
instance's route table first, if not found, the default route table will be 
tried. 
2) Set the static Ip4Gateway via ifconfig shell command. The Ip4Gateway address 
also will be set to default route table.

Thanks,
Jiaxin



> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of 
> Sivaraman Nainar
> Sent: Wednesday, July 25, 2018 5:29 PM
> To: Ye, Ting <[email protected]>; Laszlo Ersek <[email protected]>; 
> edk2- [email protected]
> Subject: Re: [edk2] reg: HTTP Request Failure over Internet
> 
> Ting:
> 
> Please find the patch  for reference.
> 
> Index: HttpProto.c
> ==========================================================
> =========
> --- HttpProto.c
> +++ HttpProto.c
> @@ -622,12 +622,20 @@
>    Status = HttpInstance->Tcp4->Configure (HttpInstance->Tcp4, Tcp4CfgData);
>    if (EFI_ERROR (Status)) {
>      DEBUG ((EFI_D_ERROR, "HttpConfigureTcp4 - %r\n", Status));
>      return Status;
>    }
> 
> +  HttpInstance->Tcp4->Routes (
> +            HttpInstance->Tcp4,
> +            FALSE,
> +            &HttpInstance->RemoteAddr,
> +            &Tcp4AP->SubnetMask,
> +            &HttpInstance->RouterAddr
> +            );
> +
>    Status = HttpCreateTcp4ConnCloseEvent (HttpInstance);
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> 
>    Status = HttpCreateTcp4TxEvent (Wrap);
> 
> -Siva
> -----Original Message-----
> From: Ye, Ting [mailto:[email protected]]
> Sent: Wednesday, July 25, 2018 1:36 PM
> To: Laszlo Ersek; Sivaraman Nainar; [email protected]
> Subject: RE: [edk2] reg: HTTP Request Failure over Internet
> 
> Hi Siva,
> 
> I didn't receive your patch either. Thanks for reporting the issue, we 
> will try to reproduce it firstly.
> 
> Thanks,
> Ting
> 
> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of 
> Laszlo Ersek
> Sent: Tuesday, July 24, 2018 8:43 PM
> To: Sivaraman Nainar <[email protected]>; 
> [email protected]
> Subject: Re: [edk2] reg: HTTP Request Failure over Internet
> 
> On 07/24/18 14:05, Sivaraman Nainar wrote:
> > Hello all,
> >
> > When an application tried to download the remote file over internet 
> > with
> the HTTP Get Request it getting failed. If we try via the Intranet 
> then application downloads the target file.
> >
> > The remote file is available in the Apache server. With the attached 
> > patch
> the download works fine in Internet and Intranet.
> >
> > Could you review the solution and feedback?
> 
> The edk2-devel list software does not reflect attachments to subscribers.
> 
> While I disagree with that practice in general -- it breaks 
> conversations where people justifiedly post small attachments, such as 
> PNG screenshots, compressed log files and such --, for posting patches 
> specifically, please use git-format-patch and git-send-email. The 
> patch should be in the body of the email (please do not copy&paste the 
> patch though; that is guaranteed not to work -- please use the git tools).
> 
> Official guidelines:
> 
> https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Developme
> nt-
> Process
> 
> Personal ones from yours truly:
> 
> https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt
> -git- guide-for-edk2-contributors-and-maintainers
> 
> Thanks,
> Laszlo
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to