Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2020-08-13 02:21:20 +0300
committerJames M Snell <jasnell@gmail.com>2020-08-21 19:18:49 +0300
commit44e6a6af67fe5038540af73f5e3456bc29243550 (patch)
treecfa55076cc421073ee06a121d49d45f80b70c9af /src
parent2a807372782470698ec8ecb216589c30ff0723cf (diff)
quic: use qlog fin flag
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: https://github.com/nodejs/node/pull/34752 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'src')
-rw-r--r--src/quic/node_quic_session.cc12
-rw-r--r--src/quic/node_quic_session.h2
2 files changed, 6 insertions, 8 deletions
diff --git a/src/quic/node_quic_session.cc b/src/quic/node_quic_session.cc
index ba8bd0fb187..9b74f03b0cc 100644
--- a/src/quic/node_quic_session.cc
+++ b/src/quic/node_quic_session.cc
@@ -3608,8 +3608,9 @@ void QuicSession::OnQlogWrite(
std::vector<uint8_t> buffer(len);
memcpy(buffer.data(), data, len);
env->SetImmediate([ptr = std::move(ptr),
- buffer = std::move(buffer)](Environment*) {
- ptr->Emit(buffer.data(), buffer.size());
+ buffer = std::move(buffer),
+ flags](Environment*) {
+ ptr->Emit(buffer.data(), buffer.size(), flags);
});
}
@@ -3647,7 +3648,7 @@ QLogStream::QLogStream(Environment* env, v8::Local<Object> obj)
StreamBase::AttachToObject(GetObject());
}
-void QLogStream::Emit(const uint8_t* data, size_t len) {
+void QLogStream::Emit(const uint8_t* data, size_t len, uint32_t flags) {
size_t remaining = len;
while (remaining != 0) {
uv_buf_t buf = EmitAlloc(len);
@@ -3658,10 +3659,7 @@ void QLogStream::Emit(const uint8_t* data, size_t len) {
EmitRead(avail, buf);
}
- // The last chunk that ngtcp2 writes is 6 bytes. Unfortunately,
- // this is the only way for us to know that ngtcp2 is definitely
- // done sending qlog events.
- if (ended_ && len == 6)
+ if (ended_ && flags & NGTCP2_QLOG_WRITE_FLAG_FIN)
EmitRead(UV_EOF);
}
diff --git a/src/quic/node_quic_session.h b/src/quic/node_quic_session.h
index fc09eab8458..7c9b3f9710f 100644
--- a/src/quic/node_quic_session.h
+++ b/src/quic/node_quic_session.h
@@ -238,7 +238,7 @@ class QLogStream final : public AsyncWrap,
QLogStream(Environment* env, v8::Local<v8::Object> obj);
- void Emit(const uint8_t* data, size_t len);
+ void Emit(const uint8_t* data, size_t len, uint32_t flags);
void End() { ended_ = true; }