]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg:Fix the issue Http boot hang when network failed.
authorZhang Lubo <lubo.zhang@intel.com>
Fri, 18 Dec 2015 01:52:17 +0000 (01:52 +0000)
committerluobozhang <luobozhang@Edk2>
Fri, 18 Dec 2015 01:52:17 +0000 (01:52 +0000)
For both IPv4 and IPv6, when network transfer failed, such as disconnected
cable or disable http server, HTTP boot should exit back to the menu UI
rather than hang.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19335 6f19259b-4bc3-4df7-8a09-765794883524

NetworkPkg/HttpDxe/HttpProto.c

index 85f84015405f9c7ff8739679ecb1d021c3948da0..165e95cc50a9d8290d92f36e00ba15a26af1afbe 100644 (file)
@@ -150,6 +150,9 @@ HttpTcpReceiveNotifyDpc (
     gBS->CloseEvent (Wrap->TcpWrap.Rx6Token.CompletionToken.Event);\r
     \r
     if (EFI_ERROR (Wrap->TcpWrap.Rx6Token.CompletionToken.Status)) {\r
+      Wrap->HttpToken->Status = Wrap->TcpWrap.Rx6Token.CompletionToken.Status;\r
+      gBS->SignalEvent (Wrap->HttpToken->Event);\r
+      FreePool (Wrap);\r
       return ;\r
     }\r
 \r
@@ -157,6 +160,9 @@ HttpTcpReceiveNotifyDpc (
     gBS->CloseEvent (Wrap->TcpWrap.Rx4Token.CompletionToken.Event);\r
     \r
     if (EFI_ERROR (Wrap->TcpWrap.Rx4Token.CompletionToken.Status)) {\r
+      Wrap->HttpToken->Status = Wrap->TcpWrap.Rx4Token.CompletionToken.Status;\r
+      gBS->SignalEvent (Wrap->HttpToken->Event);\r
+      FreePool (Wrap);\r
       return ;\r
     }\r
   }\r