EFI_TCP4_CONNECTION_STATE Tcp4State;\r
\r
\r
- if (HttpInstance->State != HTTP_STATE_TCP_CONFIGED || HttpInstance->Tcp4 == NULL) {\r
+ if (HttpInstance->State < HTTP_STATE_TCP_CONFIGED || HttpInstance->Tcp4 == NULL) {\r
return EFI_NOT_READY;\r
}\r
\r
return Status;\r
}\r
\r
- if (Tcp4State > Tcp4StateEstablished) {\r
+ if (Tcp4State == Tcp4StateEstablished) {\r
+ return EFI_SUCCESS;\r
+ } else if (Tcp4State > Tcp4StateEstablished ) {\r
HttpCloseConnection(HttpInstance);\r
- } \r
+ }\r
\r
return HttpCreateConnection (HttpInstance);\r
}\r
EFI_STATUS Status;\r
EFI_TCP6_CONNECTION_STATE Tcp6State;\r
\r
- if (HttpInstance->State != HTTP_STATE_TCP_CONFIGED || HttpInstance->Tcp6 == NULL) {\r
+ if (HttpInstance->State < HTTP_STATE_TCP_CONFIGED || HttpInstance->Tcp6 == NULL) {\r
return EFI_NOT_READY;\r
}\r
\r
return Status;\r
}\r
\r
- if (Tcp6State > Tcp6StateEstablished) {\r
- HttpCloseConnection (HttpInstance);\r
+ if (Tcp6State == Tcp6StateEstablished) {\r
+ return EFI_SUCCESS;\r
+ } else if (Tcp6State > Tcp6StateEstablished ) {\r
+ HttpCloseConnection(HttpInstance);\r
}\r
\r
return HttpCreateConnection (HttpInstance);\r
\r
@param[in] HttpInstance The HTTP instance private data.\r
@param[in] Wrap The HTTP token's wrap data.\r
+ @param[in] Configure The Flag indicates whether the first time to initialize Tcp.\r
\r
@retval EFI_SUCCESS The initialization of TCP instance is done. \r
@retval Others Other error as indicated.\r
EFI_STATUS\r
HttpInitTcp (\r
IN HTTP_PROTOCOL *HttpInstance,\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap,\r
+ IN BOOLEAN Configure\r
)\r
{\r
EFI_STATUS Status;\r
//\r
// Configure TCP instance.\r
//\r
- Status = HttpConfigureTcp4 (HttpInstance, Wrap);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
+ if (Configure) {\r
+ Status = HttpConfigureTcp4 (HttpInstance, Wrap);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
}\r
+\r
//\r
// Connect TCP.\r
//\r
//\r
// Configure TCP instance.\r
//\r
- Status = HttpConfigureTcp6 (HttpInstance, Wrap);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
+ if (Configure) {\r
+ Status = HttpConfigureTcp6 (HttpInstance, Wrap);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
}\r
+\r
//\r
// Connect TCP.\r
//\r