]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcMtftp.c
enhanced UefiPxeBcDxe to support
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcMtftp.c
index ce958bbd2592423ea9eae5bd57b50079b93e6713..3b2eb5b42226e26748c3fe3087e07bf0eaf15350 100644 (file)
@@ -60,6 +60,12 @@ PxeBcCheckPacket (
   Callback  = Private->PxeBcCallback;\r
   Status    = EFI_SUCCESS;\r
 \r
+  if (Packet->OpCode == EFI_MTFTP4_OPCODE_ERROR) {\r
+    Private->Mode.TftpErrorReceived = TRUE;\r
+    Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
+    AsciiStrnCpy (Private->Mode.TftpError.ErrorString, (CHAR8 *) Packet->Error.ErrorMessage, 127);\r
+  }\r
+\r
   if (Callback != NULL) {\r
 \r
     Status = Callback->Callback (\r
@@ -152,7 +158,11 @@ PxeBcTftpGetFileSize (
                     );\r
 \r
   if (EFI_ERROR (Status)) {\r
-\r
+    if (Packet->OpCode == EFI_MTFTP4_OPCODE_ERROR) {\r
+      Private->Mode.TftpErrorReceived = TRUE;\r
+      Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
+      AsciiStrnCpy (Private->Mode.TftpError.ErrorString, (CHAR8 *) Packet->Error.ErrorMessage, 127);\r
+    }\r
     goto ON_ERROR;\r
   }\r
 \r