Revision: 19352
          http://sourceforge.net/p/edk2/code/19352
Author:   vanjeff
Date:     2015-12-18 05:43:19 +0000 (Fri, 18 Dec 2015)
Log Message:
-----------
NetworkPkg:Fix the issue Http boot hang when network failed.

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.

(Sync patch r19335 from main trunk.)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <[email protected]>
Reviewed-by: Ye Ting <[email protected]>
Reviewed-by: Wu Jiaxin <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/19335

Modified Paths:
--------------
    branches/UDK2015/NetworkPkg/HttpDxe/HttpProto.c

Modified: branches/UDK2015/NetworkPkg/HttpDxe/HttpProto.c
===================================================================
--- branches/UDK2015/NetworkPkg/HttpDxe/HttpProto.c     2015-12-18 05:42:32 UTC 
(rev 19351)
+++ branches/UDK2015/NetworkPkg/HttpDxe/HttpProto.c     2015-12-18 05:43:19 UTC 
(rev 19352)
@@ -150,6 +150,9 @@
     gBS->CloseEvent (Wrap->TcpWrap.Rx6Token.CompletionToken.Event);
     
     if (EFI_ERROR (Wrap->TcpWrap.Rx6Token.CompletionToken.Status)) {
+      Wrap->HttpToken->Status = Wrap->TcpWrap.Rx6Token.CompletionToken.Status;
+      gBS->SignalEvent (Wrap->HttpToken->Event);
+      FreePool (Wrap);
       return ;
     }
 
@@ -157,6 +160,9 @@
     gBS->CloseEvent (Wrap->TcpWrap.Rx4Token.CompletionToken.Event);
     
     if (EFI_ERROR (Wrap->TcpWrap.Rx4Token.CompletionToken.Status)) {
+      Wrap->HttpToken->Status = Wrap->TcpWrap.Rx4Token.CompletionToken.Status;
+      gBS->SignalEvent (Wrap->HttpToken->Event);
+      FreePool (Wrap);
       return ;
     }
   }


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to