@@ -3608,8 +3608,9 @@ void QuicSession::OnQlogWrite(
36083608 std::vector<uint8_t > buffer (len);
36093609 memcpy (buffer.data (), data, len);
36103610 env->SetImmediate ([ptr = std::move (ptr),
3611- buffer = std::move (buffer)](Environment*) {
3612- ptr->Emit (buffer.data (), buffer.size ());
3611+ buffer = std::move (buffer),
3612+ flags](Environment*) {
3613+ ptr->Emit (buffer.data (), buffer.size (), flags);
36133614 });
36143615}
36153616
@@ -3647,7 +3648,7 @@ QLogStream::QLogStream(Environment* env, v8::Local<Object> obj)
36473648 StreamBase::AttachToObject (GetObject ());
36483649}
36493650
3650- void QLogStream::Emit (const uint8_t * data, size_t len) {
3651+ void QLogStream::Emit (const uint8_t * data, size_t len, uint32_t flags ) {
36513652 size_t remaining = len;
36523653 while (remaining != 0 ) {
36533654 uv_buf_t buf = EmitAlloc (len);
@@ -3658,10 +3659,7 @@ void QLogStream::Emit(const uint8_t* data, size_t len) {
36583659 EmitRead (avail, buf);
36593660 }
36603661
3661- // The last chunk that ngtcp2 writes is 6 bytes. Unfortunately,
3662- // this is the only way for us to know that ngtcp2 is definitely
3663- // done sending qlog events.
3664- if (ended_ && len == 6 )
3662+ if (ended_ && flags & NGTCP2_QLOG_WRITE_FLAG_FIN)
36653663 EmitRead (UV_EOF);
36663664}
36673665
0 commit comments