Signal QPACK dynamic table usage from quic_client_interop_test.
Mark down when a dynamic table entry is referenced from a header block in
QpackEncoder and QpackProgressiveDecoder (because they have the best knowledged
of when an entry is referenced from a header block as opposed to the encoder
stream, and also whether the entry is actually used or it cannot because it is
not acked yet or is draining). Conveniently slap Boolean to QpackHeaderTable
even though it is not set from within QpackHeaderTable, because QpackHeaderTable
lives for the entire connection, whereas QpackProgressiveDecoder is short-lived
and does not have a direct handle of QpackDecoder to send the signal.
Tested with the following command:
blaze run :quic_client_interop_test https://quic.aiortc.org
Output before this change:
Results for quic.aiortc.org:443
VHDR
B
3
Output after this change:
Results for quic.aiortc.org:443
VHDR
B
3d
gfe-relnote: n/a, change to non-production test tool.
PiperOrigin-RevId: 280004516
Change-Id: I24dd9ed3222dcbb570e6711cb30a41365e7cd6c5
diff --git a/quic/core/qpack/qpack_header_table.cc b/quic/core/qpack/qpack_header_table.cc
index ff9be9a..4cafa19 100644
--- a/quic/core/qpack/qpack_header_table.cc
+++ b/quic/core/qpack/qpack_header_table.cc
@@ -17,7 +17,8 @@
dynamic_table_capacity_(0),
maximum_dynamic_table_capacity_(0),
max_entries_(0),
- dropped_entry_count_(0) {}
+ dropped_entry_count_(0),
+ dynamic_table_entry_referenced_(false) {}
QpackHeaderTable::~QpackHeaderTable() {
for (auto& entry : observers_) {