]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/PxeBcDxe/Pxe_bc_mtftp.c
edk2/MdeModulePkg/Universal/Network/PxeBcDxe/Pxe_bc_mtftp.c:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / PxeBcDxe / Pxe_bc_mtftp.c
index 6a42646ab3de5603937b9f3ccab82a5d63421ddb..3cd090b4d8279fbd6c7b0169ea2ccd3a46f4e530 100644 (file)
@@ -32,7 +32,7 @@ Revision History
 //\r
 \r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-#include "bc.h"\r
+#include "Bc.h"\r
 \r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
 UINT64\r
@@ -778,7 +778,7 @@ MtftpListen (
   //\r
   do {\r
     if ((SaveReplyLen = ReplyLen) > BufferSize) {\r
-      SaveReplyLen = (UINTN) BufferSize;\r
+      SaveReplyLen = 0;\r
     }\r
 \r
     /* %%TBD - add big block number support */\r
@@ -1101,8 +1101,8 @@ MtftpDownload (
 \r
   Filter.Filters    = EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST;\r
   Filter.IpCnt      = 2;\r
-  Filter.IpList[0]  = Private->EfiBc.Mode->StationIp;\r
-  Filter.IpList[1]  = MtftpInfoPtr->MCastIp;\r
+  CopyMem (&Filter.IpList[0], &Private->EfiBc.Mode->StationIp, sizeof (EFI_IP_ADDRESS));\r
+  CopyMem (&Filter.IpList[1], &MtftpInfoPtr->MCastIp, sizeof (EFI_IP_ADDRESS));\r
 \r
   if ((Status = IpFilter (Private, &Filter)) != EFI_SUCCESS) {\r
     return Status;\r
@@ -1127,11 +1127,7 @@ MtftpDownload (
     // test of MTFTP server to make sure it handles mulitple opens correctly.\r
     // This code should NOT be enabled normally.\r
     //\r
-#ifdef SpecialNowaitVersion\r
-#pragma message ("This is special version for MTFTP regression test")\r
-    if (StartBlock || !LastBlock)\r
-#endif\r
-      if (((Status = MtftpListen (\r
+    if (((Status = MtftpListen (\r
                       Private,\r
                       &BufferSize,\r
                       BufferPtrLocal,\r
@@ -1148,7 +1144,7 @@ MtftpDownload (
         //\r
         // failed\r
         //\r
-      }\r
+    }\r
     //\r
     // if none were received, start block is not reset\r
     //\r
@@ -1818,8 +1814,10 @@ PxeBcMtftp (
     *(PacketSizePtr = &PacketSize) = MAX_TFTP_PKT_SIZE;\r
   }\r
 \r
-  if (*PacketSizePtr > *BufferSizePtr) {\r
-    *PacketSizePtr = (UINTN) *BufferSizePtr;\r
+  if ((*PacketSizePtr > *BufferSizePtr) &&\r
+    (Operation != EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE) &&\r
+    (Operation != EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE)) {\r
+    *PacketSizePtr = MAX ((UINTN) *BufferSizePtr, MIN_TFTP_PKT_SIZE);\r
   }\r
 \r
   if (*PacketSizePtr < MIN_TFTP_PKT_SIZE) {\r