Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SendRequestBodyAsync()

async Task System.Net.Http.Http2Connection.Http2Stream.SendRequestBodyAsync ( CancellationToken cancellationToken)
inline

Definition at line 510 of file Http2Connection.cs.

511 {
512 if (_request.Content == null)
513 {
514 return;
515 }
516 if (System.Net.NetEventSource.Log.IsEnabled())
517 {
518 Trace($"{_request.Content}", "SendRequestBodyAsync");
519 }
521 try
522 {
523 bool flag = true;
524 if (_expect100ContinueWaiter != null)
525 {
528 }
529 if (flag)
530 {
531 using Http2WriteStream writeStream = new Http2WriteStream(this);
532 if (HttpTelemetry.Log.IsEnabled())
533 {
534 HttpTelemetry.Log.RequestContentStart();
535 }
537 if (valueTask.IsCompleted)
538 {
539 valueTask.GetAwaiter().GetResult();
540 }
541 else
542 {
544 {
546 }
548 }
549 if (HttpTelemetry.Log.IsEnabled())
550 {
551 HttpTelemetry.Log.RequestContentStop(writeStream.BytesWritten);
552 }
553 }
554 if (System.Net.NetEventSource.Log.IsEnabled())
555 {
556 Trace("Finished sending request body.", "SendRequestBodyAsync");
557 }
558 }
559 catch (Exception value)
560 {
561 if (System.Net.NetEventSource.Log.IsEnabled())
562 {
563 Trace($"Failed to send request body: {value}", "SendRequestBodyAsync");
564 }
565 bool flag2;
567 {
569 {
570 _requestCompletionState = StreamCompletionState.Completed;
571 Complete();
572 return;
573 }
575 (flag2, _) = tuple;
576 _ = tuple.sendReset;
577 _requestCompletionState = StreamCompletionState.Failed;
578 SendReset();
579 Complete();
580 }
581 if (flag2)
582 {
583 _waitSource.SetResult(result: true);
584 }
585 throw;
586 }
587 finally
588 {
589 linkedRegistration.Dispose();
590 }
591 bool flag3 = false;
593 {
594 _requestCompletionState = StreamCompletionState.Completed;
595 bool flag4 = false;
597 {
598 flag3 = _responseCompletionState == StreamCompletionState.Failed;
599 flag4 = true;
600 }
601 if (flag3)
602 {
603 SendReset();
604 }
605 else
606 {
608 }
609 if (flag4)
610 {
611 Complete();
612 }
613 }
614 }
CancellationTokenRegistration RegisterRequestBodyCancellation(CancellationToken cancellationToken)
ManualResetValueTaskSourceCore< bool > _waitSource
async ValueTask< bool > WaitFor100ContinueAsync(CancellationToken cancellationToken)
readonly CancellationTokenSource _requestBodyCancellationSource
void Trace(string message, [CallerMemberName] string memberName=null)
readonly TaskCompletionSource< bool > _expect100ContinueWaiter
ValueTask InternalCopyToAsync(Stream stream, TransportContext context, CancellationToken cancellationToken)
static readonly System.Net.NetEventSource Log

References System.Net.Http.Http2Connection.Http2Stream._connection, System.Net.Http.Http2Connection.Http2Stream._expect100ContinueWaiter, System.Net.Http.Http2Connection.Http2Stream._request, System.Net.Http.Http2Connection.Http2Stream._requestBodyAbandoned, System.Net.Http.Http2Connection.Http2Stream._requestBodyCancellationSource, System.Net.Http.Http2Connection.Http2Stream._requestCompletionState, System.Net.Http.Http2Connection.Http2Stream._responseCompletionState, System.Net.Http.Http2Connection.Http2Stream._waitSource, System.cancellationToken, System.Net.Http.Http2Connection.Http2Stream.CancelResponseBody(), System.Net.Http.Http2Connection.Http2Stream.Complete(), System.Net.Http.HttpRequestMessage.Content, System.Net.Http.HttpContent.InternalCopyToAsync(), System.Net.Http.HttpTelemetry.Log, System.Net.NetEventSource.Log, System.Net.Http.HttpConnectionBase.LogExceptions(), System.Net.Http.Http2Connection.Http2Stream.RegisterRequestBodyCancellation(), System.Net.Http.Http2Connection.SendEndStreamAsync(), System.Net.Http.Http2Connection.Http2Stream.SendReset(), System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore< TResult >.SetResult(), System.Net.Http.Http2Connection.Http2Stream.signalWaiter, System.Net.Http.Http2Connection.Http2Stream.StreamId, System.Net.Http.Http2Connection.Http2Stream.SyncObject, System.Threading.CancellationTokenSource.Token, System.Net.Http.Http2Connection.Http2Stream.Trace(), System.value, and System.Net.Http.Http2Connection.Http2Stream.WaitFor100ContinueAsync().