@@ -3608,8 +3608,9 @@ void QuicSession::OnQlogWrite(
3608
3608
std::vector<uint8_t > buffer (len);
3609
3609
memcpy (buffer.data (), data, len);
3610
3610
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);
3613
3614
});
3614
3615
}
3615
3616
@@ -3647,7 +3648,7 @@ QLogStream::QLogStream(Environment* env, v8::Local<Object> obj)
3647
3648
StreamBase::AttachToObject (GetObject ());
3648
3649
}
3649
3650
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 ) {
3651
3652
size_t remaining = len;
3652
3653
while (remaining != 0 ) {
3653
3654
uv_buf_t buf = EmitAlloc (len);
@@ -3658,10 +3659,7 @@ void QLogStream::Emit(const uint8_t* data, size_t len) {
3658
3659
EmitRead (avail, buf);
3659
3660
}
3660
3661
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)
3665
3663
EmitRead (UV_EOF);
3666
3664
}
3667
3665
0 commit comments