]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
ShellPkg: Get media status in ifconfig command
[mirror_edk2.git] / ShellPkg / Library / UefiShellNetwork1CommandsLib / Ifconfig.c
index 273f1a85dd72b87ea5fdd882b81bae1fa1957078..e16d46a8ec4d81d02189f8737f946b8d62c3243c 100644 (file)
@@ -596,11 +596,14 @@ IfConfigShowInterfaceInfo (
   IN LIST_ENTRY    *IfList\r
   )\r
 {\r
-  LIST_ENTRY                *Entry;\r
-  LIST_ENTRY                *Next;\r
-  IFCONFIG_INTERFACE_CB     *IfCb;\r
-  EFI_IPv4_ADDRESS          Gateway;\r
-  UINT32                    Index;\r
+  LIST_ENTRY                   *Entry;\r
+  LIST_ENTRY                   *Next;\r
+  IFCONFIG_INTERFACE_CB        *IfCb;\r
+  BOOLEAN                       MediaPresent;\r
+  EFI_IPv4_ADDRESS              Gateway;\r
+  UINT32                        Index;\r
+  \r
+  MediaPresent = TRUE;\r
 \r
   if (IsListEmpty (IfList)) {\r
     ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);\r
@@ -617,7 +620,17 @@ IfConfigShowInterfaceInfo (
     //\r
     // Print interface name.\r
     //\r
-    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_IF_NAME), gShellNetwork1HiiHandle, IfCb->IfInfo->Name);\r
+    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_IF_NAME), gShellNetwork1HiiHandle, IfCb->IfInfo->Name); \r
+\r
+    //\r
+    // Get Media State.\r
+    //\r
+    NetLibDetectMedia (IfCb->NicHandle, &MediaPresent);\r
+    if (!MediaPresent) {\r
+      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_MEDIA_STATE), gShellNetwork1HiiHandle, L"Media disconnected");\r
+    } else {\r
+      ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_MEDIA_STATE), gShellNetwork1HiiHandle, L"Media present");\r
+    }\r
 \r
     //\r
     // Print interface config policy.\r