]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/TcpIoLib: Cancel TCP token if connect/accept is timeout.
authorFu Siyuan <siyuan.fu@intel.com>
Tue, 5 Dec 2017 06:22:48 +0000 (14:22 +0800)
committerFu Siyuan <siyuan.fu@intel.com>
Tue, 12 Dec 2017 07:50:31 +0000 (15:50 +0800)
This patch updates TcpIoConnect() and TcpIoAccept() that the Tcp.Cancel()
should be invoked to cancel the corresponding request when timeout occurs.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.c

index a7637579f2c17a93eff09fce176fafceaa5fe2b7..fd85d0e78778698f794a7f0fc14d27c13ce70e64 100644 (file)
@@ -585,6 +585,11 @@ TcpIoConnect (
   }\r
 \r
   if (!TcpIo->IsConnDone) {\r
+    if (TcpIo->TcpVersion == TCP_VERSION_4) {\r
+      Tcp4->Cancel (Tcp4, &TcpIo->ConnToken.Tcp4Token.CompletionToken);\r
+    } else {\r
+      Tcp6->Cancel (Tcp6, &TcpIo->ConnToken.Tcp6Token.CompletionToken);\r
+    }\r
     Status = EFI_TIMEOUT;\r
   } else {\r
     Status = TcpIo->ConnToken.Tcp4Token.CompletionToken.Status;\r
@@ -655,6 +660,11 @@ TcpIoAccept (
   }\r
 \r
   if (!TcpIo->IsListenDone) {\r
+    if (TcpIo->TcpVersion == TCP_VERSION_4) {\r
+      Tcp4->Cancel (Tcp4, &TcpIo->ListenToken.Tcp4Token.CompletionToken);\r
+    } else {\r
+      Tcp6->Cancel (Tcp6, &TcpIo->ListenToken.Tcp6Token.CompletionToken);\r
+    }\r
     Status = EFI_TIMEOUT;\r
   } else {\r
     Status = TcpIo->ListenToken.Tcp4Token.CompletionToken.Status;\r