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
// 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