]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.c
Import ArpDxe, Dhcp4Dxe, Ip4Dxe, Mtftp4Dxe, PxeBcDxe and PxeDhcp4Dxe.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Tcp4Main.c
index 8f5a997957333dbeef92bbe3ffdf1f649c918042..4d2e80fcadef8bb4510c96e88360b7e69e3c431e 100644 (file)
@@ -144,6 +144,7 @@ Tcp4Configure (
   EFI_TCP4_OPTION  *Option;\r
   SOCKET           *Sock;\r
   EFI_STATUS       Status;\r
+  IP4_ADDR         Ip;\r
 \r
   if (NULL == This) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -153,26 +154,25 @@ Tcp4Configure (
   // Tcp protocol related parameter check will be conducted here\r
   //\r
   if (NULL != TcpConfigData) {\r
-    if ((EFI_IP4 (TcpConfigData->AccessPoint.RemoteAddress) != 0) &&\r
-      !Ip4IsUnicast (EFI_NTOHL (TcpConfigData->AccessPoint.RemoteAddress), 0)) {\r
+\r
+    NetCopyMem (&Ip, &TcpConfigData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));\r
+    if ((Ip != 0) && !Ip4IsUnicast (NTOHL (Ip), 0)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+\r
+    if (TcpConfigData->AccessPoint.ActiveFlag &&\r
+      (0 == TcpConfigData->AccessPoint.RemotePort || (Ip == 0))) {\r
       return EFI_INVALID_PARAMETER;\r
     }\r
 \r
     if (!TcpConfigData->AccessPoint.UseDefaultAddress) {\r
-      if (!Ip4IsUnicast (EFI_NTOHL (TcpConfigData->AccessPoint.StationAddress), 0) ||\r
-          !IP4_IS_VALID_NETMASK (EFI_NTOHL (TcpConfigData->AccessPoint.SubnetMask))\r
-            ) {\r
+\r
+      NetCopyMem (&Ip, &TcpConfigData->AccessPoint.StationAddress, sizeof (IP4_ADDR));\r
+      if (!Ip4IsUnicast (NTOHL (Ip), 0) || !IP4_IS_VALID_NETMASK (NTOHL (Ip))) {\r
         return EFI_INVALID_PARAMETER;\r
       }\r
     }\r
 \r
-    if (TcpConfigData->AccessPoint.ActiveFlag &&\r
-        (0 == TcpConfigData->AccessPoint.RemotePort ||\r
-        (EFI_IP4 (TcpConfigData->AccessPoint.RemoteAddress) == 0))\r
-        ) {\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-\r
     Option = TcpConfigData->ControlOption;\r
     if ((NULL != Option) &&\r
         (Option->EnableSelectiveAck || Option->EnablePathMtuDiscovery)) {\r