HttpCloseTcp4ConnCloseEvent (HttpInstance);\r
if (NULL != Wrap->TcpWrap.TxToken.CompletionToken.Event) {\r
gBS->CloseEvent (Wrap->TcpWrap.TxToken.CompletionToken.Event);\r
+ Wrap->TcpWrap.TxToken.CompletionToken.Event = NULL;\r
}\r
\r
Error1:\r
\r
if (NULL != HttpInstance->ConnToken.CompletionToken.Event) {\r
gBS->CloseEvent (HttpInstance->ConnToken.CompletionToken.Event);\r
+ HttpInstance->ConnToken.CompletionToken.Event = NULL;\r
}\r
\r
if (NULL != HttpInstance->CloseToken.CompletionToken.Event) {\r
gBS->CloseEvent(HttpInstance->CloseToken.CompletionToken.Event);\r
+ HttpInstance->CloseToken.CompletionToken.Event = NULL;\r
} \r
}\r
\r
{\r
EFI_STATUS Status;\r
\r
- HttpInstance->CloseToken.AbortOnClose = TRUE;\r
- HttpInstance->IsCloseDone = FALSE;\r
- \r
-\r
- Status = HttpInstance->Tcp4->Close (HttpInstance->Tcp4, &HttpInstance->CloseToken);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
+ if (HttpInstance->State == HTTP_STATE_TCP_CONNECTED) {\r
+ HttpInstance->CloseToken.AbortOnClose = TRUE;\r
+ HttpInstance->IsCloseDone = FALSE;\r
+ \r
+ Status = HttpInstance->Tcp4->Close (HttpInstance->Tcp4, &HttpInstance->CloseToken);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
\r
- while (!HttpInstance->IsCloseDone) {\r
- HttpInstance->Tcp4->Poll (HttpInstance->Tcp4);\r
+ while (!HttpInstance->IsCloseDone) {\r
+ HttpInstance->Tcp4->Poll (HttpInstance->Tcp4);\r
+ }\r
}\r
\r
HttpInstance->State = HTTP_STATE_TCP_CLOSED;\r
- return Status;\r
+ return EFI_SUCCESS;\r
}\r
\r
/**\r