Move IsInvalidHeaderKeyChar() from balsa_frame.cc anonymous namespace to header_properties.
This is for consistency with IsInvalidHeaderChar().
Also, add tests for IsInvalidHeaderKeyChar(), and extend tests for IsInvalidHeaderChar().
PiperOrigin-RevId: 446704033
diff --git a/quiche/common/balsa/header_properties.cc b/quiche/common/balsa/header_properties.cc
index 6722239..561fe7a 100644
--- a/quiche/common/balsa/header_properties.cc
+++ b/quiche/common/balsa/header_properties.cc
@@ -59,6 +59,15 @@
});
}
+std::array<bool, 256> buildInvalidHeaderKeyCharLookupTable() {
+ std::array<bool, 256> invalidCharTable;
+ invalidCharTable.fill(false);
+ for (uint8_t c : kInvalidHeaderKeyCharList) {
+ invalidCharTable[c] = true;
+ }
+ return invalidCharTable;
+}
+
std::array<bool, 256> buildInvalidCharLookupTable() {
std::array<bool, 256> invalidCharTable;
invalidCharTable.fill(false);
@@ -76,6 +85,13 @@
return multivalued_headers->contains(header);
}
+bool IsInvalidHeaderKeyChar(uint8_t c) {
+ static const std::array<bool, 256> invalidHeaderKeyCharTable =
+ buildInvalidHeaderKeyCharLookupTable();
+
+ return invalidHeaderKeyCharTable[c];
+}
+
bool IsInvalidHeaderChar(uint8_t c) {
static const std::array<bool, 256> invalidCharTable =
buildInvalidCharLookupTable();