//\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-#include "bc.h"\r
+#include "Bc.h"\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
UINT64\r
//\r
do {\r
if ((SaveReplyLen = ReplyLen) > BufferSize) {\r
- SaveReplyLen = (UINTN) BufferSize;\r
+ SaveReplyLen = 0;\r
}\r
\r
/* %%TBD - add big block number support */\r
\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
// 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
//\r
// failed\r
//\r
- }\r
+ }\r
//\r
// if none were received, start block is not reset\r
//\r
*(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