diff options
Diffstat (limited to 'chromium/net/third_party/quiche/src/http2/adapter/header_validator.h')
-rw-r--r-- | chromium/net/third_party/quiche/src/http2/adapter/header_validator.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/chromium/net/third_party/quiche/src/http2/adapter/header_validator.h b/chromium/net/third_party/quiche/src/http2/adapter/header_validator.h deleted file mode 100644 index 30f16d52659..00000000000 --- a/chromium/net/third_party/quiche/src/http2/adapter/header_validator.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef QUICHE_HTTP2_ADAPTER_HEADER_VALIDATOR_H_ -#define QUICHE_HTTP2_ADAPTER_HEADER_VALIDATOR_H_ - -#include <string> -#include <vector> - -#include "absl/strings/string_view.h" -#include "absl/types/optional.h" -#include "common/platform/api/quiche_export.h" - -namespace http2 { -namespace adapter { - -enum class HeaderType : uint8_t { - REQUEST, - REQUEST_TRAILER, - RESPONSE_100, - RESPONSE, - RESPONSE_TRAILER, -}; - -class QUICHE_EXPORT_PRIVATE HeaderValidator { - public: - HeaderValidator() {} - - void SetMaxFieldSize(uint32_t field_size) { max_field_size_ = field_size; } - - // If called, this validator will allow the `:protocol` pseudo-header, as - // described in RFC 8441. - void AllowConnect() { allow_connect_ = true; } - - void StartHeaderBlock(); - - enum HeaderStatus { - HEADER_OK, - HEADER_FIELD_INVALID, - HEADER_FIELD_TOO_LONG, - }; - HeaderStatus ValidateSingleHeader(absl::string_view key, - absl::string_view value); - - // Returns true if all required pseudoheaders and no extra pseudoheaders are - // present for the given header type. - bool FinishHeaderBlock(HeaderType type); - - // For responses, returns the value of the ":status" header, if present. - absl::string_view status_header() const { return status_; } - - absl::optional<size_t> content_length() const { return content_length_; } - - private: - bool HandleContentLength(absl::string_view value); - - std::vector<std::string> pseudo_headers_; - std::string status_; - std::string method_; - std::string path_; - absl::optional<size_t> max_field_size_; - absl::optional<size_t> content_length_; - bool allow_connect_ = false; -}; - -} // namespace adapter -} // namespace http2 - -#endif // QUICHE_HTTP2_ADAPTER_HEADER_VALIDATOR_H_ |