# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Fuzzer dictionary targetting HTTP/1.1 requests, to the extent that
# HttpServer parses those (not very much).

# Tokens the parser cares about.
# INPUT_LWS
" "
"\x09"

# INPUT_CR
"\x0D"

# INPUT_LF
"\x0A"

# INPUT_COLON
":"

# Methods... The code doesn't actually care much about those
"GET "
"HEAD "

# The server really wants one of these.
"HTTP/1.1"

# Some characters for URLs.
"/"
"%"
"a"
"?"

# Want this accessible...
"\x0D\x0A"

# Some stuff for headers
"Content-Length: 10"

# Things that WebSocket cares about.
"Connection: upgrade\x0D\x0Asec-websocket-version: 13\x0D\x0Asec-websocket-key: abcd"
# There is a separate fuzzer for this.
"sec-websocket-extensions: permessage-deflate"

# String terminator for FuzzedDataProvider::ConsumeRandomLengthString.
"\\ "

# There is a lot of use of ConsumeUint32InRange clients, like ConsumeBool,
# so try make it easy to produce lots of inputs for these.
"\x00\x00\x00\x00"
