Skip to content

Commit 44e6a6a

Browse files
committed
quic: use qlog fin flag
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #34752 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent 2a80737 commit 44e6a6a

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

src/quic/node_quic_session.cc

+5-7
Original file line numberDiff line numberDiff line change
@@ -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

src/quic/node_quic_session.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class QLogStream final : public AsyncWrap,
238238

239239
QLogStream(Environment* env, v8::Local<v8::Object> obj);
240240

241-
void Emit(const uint8_t* data, size_t len);
241+
void Emit(const uint8_t* data, size_t len, uint32_t flags);
242242

243243
void End() { ended_ = true; }
244244

0 commit comments

Comments
 (0)