MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / TlsCreateTxRxEvent

Function TlsCreateTxRxEvent

NetworkPkg/HttpDxe/HttpsSupport.c:214–321  ·  view source on GitHub ↗

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. **/

Source from the content-addressed store, hash-verified

212
213**/
214EFI_STATUS
215EFIAPI
216TlsCreateTxRxEvent (
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,

Callers 1

TlsConfigureSessionFunction · 0.85

Calls 1

TlsCloseTxRxEventFunction · 0.85

Tested by

no test coverage detected