Create event for the TLS receive and transmit tokens which are used to receive and transmit TLS related messages. @param[in, out] HttpInstance Pointer to HTTP_PROTOCOL structure. @retval EFI_SUCCESS The events are created successfully. @retval others Other error as indicated. **/
| 212 | |
| 213 | **/ |
| 214 | EFI_STATUS |
| 215 | EFIAPI |
| 216 | TlsCreateTxRxEvent ( |
| 217 | IN OUT HTTP_PROTOCOL *HttpInstance |
| 218 | ) |
| 219 | { |
| 220 | EFI_STATUS Status; |
| 221 | |
| 222 | if (!HttpInstance->LocalAddressIsIPv6) { |
| 223 | // |
| 224 | // For Tcp4TlsTxToken. |
| 225 | // |
| 226 | Status = gBS->CreateEvent ( |
| 227 | EVT_NOTIFY_SIGNAL, |
| 228 | TPL_NOTIFY, |
| 229 | HttpCommonNotify, |
| 230 | &HttpInstance->TlsIsTxDone, |
| 231 | &HttpInstance->Tcp4TlsTxToken.CompletionToken.Event |
| 232 | ); |
| 233 | if (EFI_ERROR (Status)) { |
| 234 | goto ERROR; |
| 235 | } |
| 236 | |
| 237 | HttpInstance->Tcp4TlsTxData.Push = TRUE; |
| 238 | HttpInstance->Tcp4TlsTxData.Urgent = FALSE; |
| 239 | HttpInstance->Tcp4TlsTxData.DataLength = 0; |
| 240 | HttpInstance->Tcp4TlsTxData.FragmentCount = 1; |
| 241 | HttpInstance->Tcp4TlsTxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp4TlsTxData.DataLength; |
| 242 | HttpInstance->Tcp4TlsTxData.FragmentTable[0].FragmentBuffer = NULL; |
| 243 | HttpInstance->Tcp4TlsTxToken.Packet.TxData = &HttpInstance->Tcp4TlsTxData; |
| 244 | HttpInstance->Tcp4TlsTxToken.CompletionToken.Status = EFI_NOT_READY; |
| 245 | |
| 246 | // |
| 247 | // For Tcp4TlsRxToken. |
| 248 | // |
| 249 | Status = gBS->CreateEvent ( |
| 250 | EVT_NOTIFY_SIGNAL, |
| 251 | TPL_NOTIFY, |
| 252 | HttpCommonNotify, |
| 253 | &HttpInstance->TlsIsRxDone, |
| 254 | &HttpInstance->Tcp4TlsRxToken.CompletionToken.Event |
| 255 | ); |
| 256 | if (EFI_ERROR (Status)) { |
| 257 | goto ERROR; |
| 258 | } |
| 259 | |
| 260 | HttpInstance->Tcp4TlsRxData.DataLength = 0; |
| 261 | HttpInstance->Tcp4TlsRxData.FragmentCount = 1; |
| 262 | HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp4TlsRxData.DataLength ; |
| 263 | HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentBuffer = NULL; |
| 264 | HttpInstance->Tcp4TlsRxToken.Packet.RxData = &HttpInstance->Tcp4TlsRxData; |
| 265 | HttpInstance->Tcp4TlsRxToken.CompletionToken.Status = EFI_NOT_READY; |
| 266 | } else { |
| 267 | // |
| 268 | // For Tcp6TlsTxToken. |
| 269 | // |
| 270 | Status = gBS->CreateEvent ( |
| 271 | EVT_NOTIFY_SIGNAL, |
no test coverage detected