]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Impl.c
BaseTools/Capsule: Do not support -o with --dump-info
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Impl.c
index d8c0ad0d24ec7414918264b193462f1e808b8468..9ace833b98f7a922e6dc27990ee61bfc69029f23 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   This EFI_DHCP6_PROTOCOL interface implementation.\r
 \r
-  Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2018, 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
@@ -76,6 +76,7 @@ EfiDhcp6Start (
   EFI_TPL                      OldTpl;\r
   DHCP6_INSTANCE               *Instance;\r
   DHCP6_SERVICE                *Service;\r
+  EFI_STATUS                   MediaStatus;\r
 \r
   if (This == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -101,6 +102,17 @@ EfiDhcp6Start (
   }\r
 \r
   OldTpl           = gBS->RaiseTPL (TPL_CALLBACK);\r
+\r
+  //\r
+  // Check Media Satus.\r
+  //\r
+  MediaStatus = EFI_SUCCESS;\r
+  NetLibDetectMediaWaitTimeout (Service->Controller, DHCP_CHECK_MEDIA_WAITING_TIME, &MediaStatus);\r
+  if (MediaStatus != EFI_SUCCESS) {\r
+    Status = EFI_NO_MEDIA;\r
+    goto ON_ERROR;\r
+  }\r
+\r
   Instance->UdpSts = EFI_ALREADY_STARTED;\r
 \r
   //\r
@@ -225,7 +237,7 @@ EfiDhcp6Stop (
     }\r
     Status = Instance->UdpSts;\r
   }\r
-  \r
+\r
 ON_EXIT:\r
   //\r
   // Clean up the session data for the released Ia.\r
@@ -666,7 +678,7 @@ EfiDhcp6InfoRequest (
       return Status;\r
     }\r
 \r
-    do {  \r
+    do {\r
       TimerStatus = gBS->CheckEvent (Timer);\r
       if (!EFI_ERROR (TimerStatus)) {\r
         Status = Dhcp6StartInfoRequest (\r
@@ -682,7 +694,7 @@ EfiDhcp6InfoRequest (
                    );\r
       }\r
     } while (TimerStatus == EFI_NOT_READY);\r
-    \r
+\r
     gBS->CloseEvent (Timer);\r
   }\r
   if (EFI_ERROR (Status)) {\r