OP_PAD\r
);\r
DHCPDECLINEoptions.DhcpMessageType.Type = DHCPDECLINE;\r
- CopyMem (&DHCPDECLINEoptions.OpDeclineEnd, &DHCP_REQ_OPTIONS, sizeof (struct requestopendstr));\r
+ CopyMem (&DHCPDECLINEoptions.OpDeclineEnd, &DHCP_REQ_OPTIONS, sizeof (DHCPDECLINEoptions.OpDeclineEnd));\r
\r
{\r
EFI_IP_ADDRESS TmpIp;\r
//\r
DhcpRxBuf = &DHCPV4_ACK_BUFFER;\r
DHCPV4_OPTIONS_BUFFER.DhcpMessageType.Type = DHCPREQUEST;\r
- CopyMem (&DHCP_REQ_OPTIONS, &RequestOpEndStr, sizeof (RequestOpEndStr));\r
-// DHCP_REQ_OPTIONS = RequestOpEndStr;\r
+ CopyMem (&DHCP_REQ_OPTIONS, &RequestOpEndStr, sizeof (DHCP_REQ_OPTIONS));\r
DHCP_REQ_OPTIONS.OpReqIP.Ip = *(EFI_IPv4_ADDRESS *) &RxBuf[OfferIx].u.Dhcpv4.yiaddr;\r
\r
CopyMem (\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
*(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