X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FNetwork%2FMtftp4Dxe%2FMtftp4Impl.c;h=70bd693e4e3a6f172a543421a850e10cf5bebd1d;hp=d5a1a8c303e00c801344abe18e876181ed0d3ce8;hb=c0fd7f734e2d33e22215899b40a47b843129541d;hpb=d1102dba7210b95e41d06c2338a22ba6af248645
diff --git a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c
index d5a1a8c303..70bd693e4e 100644
--- a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c
+++ b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c
@@ -3,13 +3,7 @@
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -80,6 +74,9 @@ Mtftp4CleanOperation (
Instance->Operation = 0;
Instance->BlkSize = MTFTP4_DEFAULT_BLKSIZE;
+ Instance->WindowSize = 1;
+ Instance->TotalBlock = 0;
+ Instance->AckedBlock = 0;
Instance->LastBlock = 0;
Instance->ServerIp = 0;
Instance->ListeningPort = 0;
@@ -308,7 +305,7 @@ Mtftp4ConfigUnicastPort (
UdpConfig.UseDefaultAddress = Config->UseDefaultSetting;
IP4_COPY_ADDRESS (&UdpConfig.StationAddress, &Config->StationIp);
IP4_COPY_ADDRESS (&UdpConfig.SubnetMask, &Config->SubnetMask);
- UdpConfig.StationPort = 0;
+ UdpConfig.StationPort = Config->LocalPort;
UdpConfig.RemotePort = 0;
Ip = HTONL (Instance->ServerIp);
@@ -428,6 +425,7 @@ Mtftp4Start (
Token->OptionList,
Token->OptionCount,
TRUE,
+ Instance->Operation,
&Instance->RequestOption
);
@@ -443,6 +441,7 @@ Mtftp4Start (
Config = &Instance->Config;
Instance->Token = Token;
Instance->BlkSize = MTFTP4_DEFAULT_BLKSIZE;
+ Instance->WindowSize = MTFTP4_DEFAULT_WINDOWSIZE;
CopyMem (&Instance->ServerIp, &Config->ServerIp, sizeof (IP4_ADDR));
Instance->ServerIp = NTOHL (Instance->ServerIp);
@@ -509,8 +508,9 @@ Mtftp4Start (
goto ON_ERROR;
}
+ gBS->RestoreTPL(OldTpl);
+
if (Token->Event != NULL) {
- gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
}
@@ -522,7 +522,6 @@ Mtftp4Start (
This->Poll (This);
}
- gBS->RestoreTPL (OldTpl);
return Token->Status;
ON_ERROR:
@@ -682,7 +681,7 @@ EfiMtftp4Configure (
}
if ((Gateway != 0) &&
- (!IP4_NET_EQUAL (Gateway, Ip, Netmask) || (Netmask != 0 && !NetIp4IsUnicast (Gateway, Netmask)))) {
+ ((Netmask != 0xFFFFFFFF && !IP4_NET_EQUAL (Gateway, Ip, Netmask)) || (Netmask != 0 && !NetIp4IsUnicast (Gateway, Netmask)))) {
return EFI_INVALID_PARAMETER;
}