/** @file\r
The implementation of a dispatch routine for processing TCP requests.\r
\r
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
NetbufFreeList (&Tcb->SndQue);\r
NetbufFreeList (&Tcb->RcvQue);\r
Tcb->State = TCP_CLOSED;\r
+ Tcb->RemoteIpZero = FALSE;\r
}\r
\r
/**\r
\r
if (Sk->IpVersion == IP_VERSION_6) {\r
Tcb->Tick = TCP6_REFRESH_NEIGHBOR_TICK;\r
+\r
+ if (NetIp6IsUnspecifiedAddr (&Tcb->RemoteEnd.Ip.v6)) {\r
+ Tcb->RemoteIpZero = TRUE;\r
+ }\r
}\r
\r
TcpInsertTcb (Tcb);\r
/** @file\r
Implementation of I/O interfaces between TCP and IpIoLib.\r
\r
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
// It's IPv6 and this TCP segment belongs to a solid TCB, in such case\r
// the destination address can't be overridden, so reset the Dest to NULL.\r
//\r
- Dest = NULL;\r
+ if (!Tcb->RemoteIpZero) {\r
+ Dest = NULL;\r
+ }\r
}\r
}\r
\r
/** @file\r
TCP protocol header file.\r
\r
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
UINT8 Ttl;\r
EFI_IPv4_ADDRESS SubnetMask;\r
\r
+\r
+ BOOLEAN RemoteIpZero; ///< RemoteEnd.Ip is ZERO when configured.\r
IP_IO_IP_INFO *IpInfo; ///< Pointer reference to Ip used to send pkt\r
UINT32 Tick; ///< 1 tick = 200ms\r
};\r