]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Impl.c
BaseTools: enhance error handling for option --binary-source
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Impl.c
index 934c03ed859a890ef3fff9841036b11f42ed4ab9..b479421f83c9b0b6dd90ce0530ef12b51ab8a1cb 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 - 2017, 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,13 +102,18 @@ EfiDhcp6Start (
   }\r
 \r
   OldTpl           = gBS->RaiseTPL (TPL_CALLBACK);\r
-  Instance->UdpSts = EFI_ALREADY_STARTED;\r
 \r
   //\r
-  // Need to clear initial time to make sure that elapsed-time\r
-  // is set to 0 for first Solicit.\r
+  // Check Media Satus.\r
   //\r
-  Instance->StartTime = 0;\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
   // Send the solicit message to start S.A.R.R process.\r