@@ -366,24 +366,23 @@ public async Task<bool> SendHeadersAsync(IEnumerable<KeyValuePair<string, string
366
366
frame . PrepareHeaders ( ) ;
367
367
var buffer = _headerEncodingBuffer . AsMemory ( ) ;
368
368
var done = _qpackEncoder . BeginEncode ( headers , buffer . Span , out var length ) ;
369
- frame . Length = length ;
370
- // TODO may want to modify behavior of input frames to mock different client behavior (client can send anything).
371
- Http3FrameWriter . WriteHeader ( frame , outputWriter ) ;
372
- await SendAsync ( buffer . Span . Slice ( 0 , length ) ) ;
373
369
374
- if ( endStream )
375
- {
376
- await _pair . Application . Output . CompleteAsync ( ) ;
377
- }
370
+ // TODO may want to modify behavior of input frames to mock different client behavior (client can send anything).
371
+ await SendFrameAsync ( frame , buffer . Slice ( 0 , length ) , endStream ) ;
378
372
379
373
return done ;
380
374
}
381
375
382
376
internal async Task SendDataAsync ( Memory < byte > data , bool endStream = false )
383
377
{
384
- var outputWriter = _pair . Application . Output ;
385
378
var frame = new Http3RawFrame ( ) ;
386
379
frame . PrepareData ( ) ;
380
+ await SendFrameAsync ( frame , data , endStream ) ;
381
+ }
382
+
383
+ internal async Task SendFrameAsync ( Http3RawFrame frame , Memory < byte > data , bool endStream = false )
384
+ {
385
+ var outputWriter = _pair . Application . Output ;
387
386
frame . Length = data . Length ;
388
387
Http3FrameWriter . WriteHeader ( frame , outputWriter ) ;
389
388
await SendAsync ( data . Span ) ;
0 commit comments