]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Io.c
DHCP6 bug fix:
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Io.c
index b23147952517aae8d3447ce17c46551402865ea7..063605e60947bb6a8c7291e27d8c49445cbbda79 100644 (file)
@@ -2,7 +2,7 @@
   Dhcp6 internal functions implementation.\r
 \r
   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
   Dhcp6 internal functions implementation.\r
 \r
   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -2812,6 +2812,7 @@ Dhcp6ReceivePacket (
   LIST_ENTRY                *Next1;\r
   LIST_ENTRY                *Entry2;\r
   LIST_ENTRY                *Next2;\r
   LIST_ENTRY                *Next1;\r
   LIST_ENTRY                *Entry2;\r
   LIST_ENTRY                *Next2;\r
+  EFI_STATUS                Status;\r
 \r
   ASSERT (Udp6Wrap != NULL);\r
   ASSERT (Context != NULL);\r
 \r
   ASSERT (Udp6Wrap != NULL);\r
   ASSERT (Context != NULL);\r
@@ -2891,6 +2892,18 @@ Dhcp6ReceivePacket (
 \r
 ON_CONTINUE:\r
 \r
 \r
 ON_CONTINUE:\r
 \r
+  if (!IsDispatched) {\r
+    Status = UdpIoRecvDatagram (\r
+             Service->UdpIo,\r
+             Dhcp6ReceivePacket,\r
+             Service,\r
+             0\r
+             );\r
+    if (EFI_ERROR (Status)) {\r
+      Dhcp6CleanupRetry (Instance, DHCP6_PACKET_ALL);\r
+    }\r
+  }\r
+\r
   NetbufFree (Udp6Wrap);\r
 \r
   if (Packet != NULL) {\r
   NetbufFree (Udp6Wrap);\r
 \r
   if (Packet != NULL) {\r