]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Impl.c
NetworkPkg/Dhcp6Dxe: Check Media status before starting DHCP process.
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Impl.c
index d8c0ad0d24ec7414918264b193462f1e808b8468..1107865f4227aa9ec345823c20f60007ee643d2e 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
+  BOOLEAN                      MediaPresent;\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
+  MediaPresent = TRUE;\r
+  NetLibDetectMedia (Service->Controller, &MediaPresent);\r
+  if (!MediaPresent) {\r
+    Status = EFI_NO_MEDIA;\r
+    goto ON_ERROR;\r
+  }\r
+\r
   Instance->UdpSts = EFI_ALREADY_STARTED;\r
 \r
   //\r