Signed-off-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Ouyang Qian <qian.ouyang@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13606
6f19259b-4bc3-4df7-8a09-
765794883524
/** @file\r
The implementation of a dispatch routine for processing TCP requests.\r
\r
/** @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
\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
NetbufFreeList (&Tcb->SndQue);\r
NetbufFreeList (&Tcb->RcvQue);\r
Tcb->State = TCP_CLOSED;\r
+ Tcb->RemoteIpZero = FALSE;\r
\r
if (Sk->IpVersion == IP_VERSION_6) {\r
Tcb->Tick = TCP6_REFRESH_NEIGHBOR_TICK;\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
}\r
\r
TcpInsertTcb (Tcb);\r
/** @file\r
Implementation of I/O interfaces between TCP and IpIoLib.\r
\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
\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
// 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
+ if (!Tcb->RemoteIpZero) {\r
+ Dest = NULL;\r
+ }\r
/** @file\r
TCP protocol header file.\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
\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
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
IP_IO_IP_INFO *IpInfo; ///< Pointer reference to Ip used to send pkt\r
UINT32 Tick; ///< 1 tick = 200ms\r
};\r