7#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
8&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
9&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
10&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
11&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
12&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
13&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
14&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
15&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
16&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
17&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
18&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
19&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
20&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
21&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
22&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
23&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
24&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
25&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
26&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
27&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
28&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
29&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
30/* The character set is not based on ISO-646. */
31#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
34#line 1 "RegisteredHeadersHash.gperf"
37 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
39 * Squid software is distributed under GPLv2+ license and includes
40 * contributions from numerous individuals and organizations.
41 * Please see the COPYING and CONTRIBUTORS files for details.
43#line 22 "RegisteredHeadersHash.gperf"
44class HeaderTableRecord;
54/* maximum key range = 102, duplicates = 0 */
57#define GPERF_DOWNCASE 1
58static unsigned char gperf_downcase[256] =
60 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
61 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
62 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
63 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
64 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
65 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
66 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
67 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
68 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
69 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
70 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
71 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
72 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
73 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
74 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
75 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
76 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
81#ifndef GPERF_CASE_MEMCMP
82#define GPERF_CASE_MEMCMP 1
84gperf_case_memcmp (const char *s1, const char *s2, size_t n)
88 unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
89 unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
95 return (int)c1 - (int)c2;
101class HttpHeaderHashTable
104 static inline unsigned int HttpHeaderHash (const char *str, size_t len);
106 static const class HeaderTableRecord *lookup (const char *str, size_t len);
110HttpHeaderHashTable::HttpHeaderHash (const char *str, size_t len)
112 static const unsigned char asso_values[] =
114 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
115 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
116 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
117 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
118 114, 114, 81, 114, 114, 13, 114, 114, 114, 114,
119 26, 114, 114, 21, 114, 114, 114, 114, 9, 114,
120 114, 114, 114, 114, 114, 24, 61, 30, 26, 10,
121 34, 44, 14, 52, 114, 6, 37, 65, 6, 6,
122 19, 50, 27, 16, 12, 51, 55, 51, 7, 21,
123 114, 114, 114, 114, 114, 114, 114, 24, 61, 30,
124 26, 10, 34, 44, 14, 52, 114, 6, 37, 65,
125 6, 6, 19, 50, 27, 16, 12, 51, 55, 51,
126 7, 21, 114, 114, 114, 114, 114, 114, 114, 114,
127 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
128 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
129 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
130 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
131 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
132 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
133 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
134 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
135 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
136 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
137 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
138 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
139 114, 114, 114, 114, 114, 114
141 unsigned int hval = len;
146 hval += asso_values[static_cast<unsigned char>(str[8])];
154 hval += asso_values[static_cast<unsigned char>(str[2])];
159 return hval + asso_values[static_cast<unsigned char>(str[len - 1])];
162static const unsigned char lengthtable[] =
164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
165 0, 0, 4, 0, 0, 0, 0, 5, 6, 3, 0, 0, 4, 5,
166 10, 6, 0, 8, 4, 8, 16, 8, 7, 6, 10, 7, 12, 10,
167 7, 19, 8, 3, 18, 15, 6, 25, 13, 3, 4, 9, 6, 13,
168 13, 19, 7, 12, 6, 7, 11, 15, 6, 16, 13, 19, 7, 16,
169 14, 14, 4, 9, 21, 4, 16, 18, 20, 15, 11, 8, 12, 13,
170 10, 10, 13, 16, 9, 12, 18, 17, 17, 5, 19, 15, 10, 6,
171 17, 12, 13, 11, 15, 11, 13, 13, 10, 13, 0, 0, 0, 0,
175static const class HeaderTableRecord HttpHeaderDefinitionsTable[] =
177 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
179#line 85 "RegisteredHeadersHash.gperf"
180 {"TE", Http::HdrType::TE, Http::HdrFieldType::ftStr, HdrKind::RequestHeader|HdrKind::HopByHopHeader},
182#line 64 "RegisteredHeadersHash.gperf"
183 {"Link", Http::HdrType::LINK, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::EntityHeader},
184 {""}, {""}, {""}, {""},
185#line 78 "RegisteredHeadersHash.gperf"
186 {"Range", Http::HdrType::RANGE, Http::HdrFieldType::ftPRange, HdrKind::RequestHeader},
187#line 47 "RegisteredHeadersHash.gperf"
188 {"Cookie", Http::HdrType::COOKIE, Http::HdrFieldType::ftStr, HdrKind::None},
189#line 29 "RegisteredHeadersHash.gperf"
190 {"Age", Http::HdrType::AGE, Http::HdrFieldType::ftInt, HdrKind::ReplyHeader},
192#line 49 "RegisteredHeadersHash.gperf"
193 {"Date", Http::HdrType::DATE, Http::HdrFieldType::ftDate_1123, HdrKind::GeneralHeader},
194#line 86 "RegisteredHeadersHash.gperf"
195 {"Title", Http::HdrType::TITLE, Http::HdrFieldType::ftStr, HdrKind::None},
196#line 37 "RegisteredHeadersHash.gperf"
197 {"Connection", Http::HdrType::CONNECTION, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader|HdrKind::HopByHopHeader},
198#line 109 "RegisteredHeadersHash.gperf"
199 {"Other:", Http::HdrType::OTHER, Http::HdrFieldType::ftStr, HdrKind::EntityHeader},
201#line 59 "RegisteredHeadersHash.gperf"
202 {"If-Range", Http::HdrType::IF_RANGE, Http::HdrFieldType::ftDate_1123_or_ETag, HdrKind::None},
203#line 55 "RegisteredHeadersHash.gperf"
204 {"Host", Http::HdrType::HOST, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
205#line 36 "RegisteredHeadersHash.gperf"
206 {"CDN-Loop", Http::HdrType::CDN_LOOP, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
207#line 75 "RegisteredHeadersHash.gperf"
208 {"Proxy-Connection", Http::HdrType::PROXY_CONNECTION, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader|HdrKind::HopByHopHeader},
209#line 56 "RegisteredHeadersHash.gperf"
210 {"If-Match", Http::HdrType::IF_MATCH, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
211#line 106 "RegisteredHeadersHash.gperf"
212 {"FTP-Pre", Http::HdrType::FTP_PRE, Http::HdrFieldType::ftStr, HdrKind::None},
213#line 51 "RegisteredHeadersHash.gperf"
214 {"Expect", Http::HdrType::EXPECT, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
215#line 92 "RegisteredHeadersHash.gperf"
216 {"User-Agent", Http::HdrType::USER_AGENT, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
217#line 48 "RegisteredHeadersHash.gperf"
218 {"Cookie2", Http::HdrType::COOKIE2, Http::HdrFieldType::ftStr, HdrKind::None},
219#line 46 "RegisteredHeadersHash.gperf"
220 {"Content-Type", Http::HdrType::CONTENT_TYPE, Http::HdrFieldType::ftStr, HdrKind::EntityHeader},
221#line 108 "RegisteredHeadersHash.gperf"
222 {"FTP-Reason", Http::HdrType::FTP_REASON, Http::HdrFieldType::ftStr, HdrKind::None},
223#line 52 "RegisteredHeadersHash.gperf"
224 {"Expires", Http::HdrType::EXPIRES, Http::HdrFieldType::ftDate_1123, HdrKind::EntityHeader},
225#line 74 "RegisteredHeadersHash.gperf"
226 {"Proxy-Authorization", Http::HdrType::PROXY_AUTHORIZATION, Http::HdrFieldType::ftStr, HdrKind::RequestHeader|HdrKind::HopByHopHeader},
227#line 65 "RegisteredHeadersHash.gperf"
228 {"Location", Http::HdrType::LOCATION, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
229#line 62 "RegisteredHeadersHash.gperf"
230 {"Key", Http::HdrType::KEY, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
231#line 72 "RegisteredHeadersHash.gperf"
232 {"Proxy-Authenticate", Http::HdrType::PROXY_AUTHENTICATE, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
233#line 100 "RegisteredHeadersHash.gperf"
234 {"X-Next-Services", Http::HdrType::X_NEXT_SERVICES, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
235#line 24 "RegisteredHeadersHash.gperf"
236 {"Accept", Http::HdrType::ACCEPT, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
237#line 73 "RegisteredHeadersHash.gperf"
238 {"Proxy-Authentication-Info", Http::HdrType::PROXY_AUTHENTICATION_INFO, Http::HdrFieldType::ftStr, HdrKind::ListHeader},
239#line 76 "RegisteredHeadersHash.gperf"
240 {"Proxy-support", Http::HdrType::PROXY_SUPPORT, Http::HdrFieldType::ftStr, HdrKind::ListHeader},
241#line 94 "RegisteredHeadersHash.gperf"
242 {"Via", Http::HdrType::VIA, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader},
243#line 93 "RegisteredHeadersHash.gperf"
244 {"Vary", Http::HdrType::VARY, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
245#line 89 "RegisteredHeadersHash.gperf"
246 {"Translate", Http::HdrType::TRANSLATE, Http::HdrFieldType::ftStr, HdrKind::None},
247#line 70 "RegisteredHeadersHash.gperf"
248 {"Pragma", Http::HdrType::PRAGMA, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader},
249#line 33 "RegisteredHeadersHash.gperf"
250 {"Authorization", Http::HdrType::AUTHORIZATION, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
251#line 45 "RegisteredHeadersHash.gperf"
252 {"Content-Range", Http::HdrType::CONTENT_RANGE, Http::HdrFieldType::ftPContRange, HdrKind::EntityHeader},
253#line 39 "RegisteredHeadersHash.gperf"
254 {"Content-Disposition", Http::HdrType::CONTENT_DISPOSITION, Http::HdrFieldType::ftStr, HdrKind::None},
255#line 87 "RegisteredHeadersHash.gperf"
256 {"Trailer", Http::HdrType::TRAILER, Http::HdrFieldType::ftStr, HdrKind::HopByHopHeader},
257#line 66 "RegisteredHeadersHash.gperf"
258 {"Max-Forwards", Http::HdrType::MAX_FORWARDS, Http::HdrFieldType::ftInt64, HdrKind::RequestHeader},
259#line 82 "RegisteredHeadersHash.gperf"
260 {"Server", Http::HdrType::SERVER, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
261#line 91 "RegisteredHeadersHash.gperf"
262 {"Upgrade", Http::HdrType::UPGRADE, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader|HdrKind::HopByHopHeader},
263#line 81 "RegisteredHeadersHash.gperf"
264 {"Retry-After", Http::HdrType::RETRY_AFTER, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
265#line 103 "RegisteredHeadersHash.gperf"
266 {"Front-End-Https", Http::HdrType::FRONT_END_HTTPS, Http::HdrFieldType::ftStr, HdrKind::None},
267#line 69 "RegisteredHeadersHash.gperf"
268 {"Origin", Http::HdrType::ORIGIN, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
269#line 43 "RegisteredHeadersHash.gperf"
270 {"Content-Location", Http::HdrType::CONTENT_LOCATION, Http::HdrFieldType::ftStr, HdrKind::EntityHeader},
271#line 98 "RegisteredHeadersHash.gperf"
272 {"X-Squid-Error", Http::HdrType::X_SQUID_ERROR, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
273#line 32 "RegisteredHeadersHash.gperf"
274 {"Authentication-Info", Http::HdrType::AUTHENTICATION_INFO, Http::HdrFieldType::ftStr, HdrKind::ListHeader},
275#line 79 "RegisteredHeadersHash.gperf"
276 {"Referer", Http::HdrType::REFERER, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
277#line 41 "RegisteredHeadersHash.gperf"
278 {"Content-Language", Http::HdrType::CONTENT_LANGUAGE, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::EntityHeader},
279#line 25 "RegisteredHeadersHash.gperf"
280 {"Accept-Charset", Http::HdrType::ACCEPT_CHARSET, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
281#line 42 "RegisteredHeadersHash.gperf"
282 {"Content-Length", Http::HdrType::CONTENT_LENGTH, Http::HdrFieldType::ftInt64, HdrKind::EntityHeader},
283#line 50 "RegisteredHeadersHash.gperf"
284 {"ETag", Http::HdrType::ETAG, Http::HdrFieldType::ftETag, HdrKind::EntityHeader},
285#line 68 "RegisteredHeadersHash.gperf"
286 {"Negotiate", Http::HdrType::NEGOTIATE, Http::HdrFieldType::ftStr, HdrKind::None},
287#line 90 "RegisteredHeadersHash.gperf"
288 {"Unless-Modified-Since", Http::HdrType::UNLESS_MODIFIED_SINCE, Http::HdrFieldType::ftStr, HdrKind::None},
289#line 54 "RegisteredHeadersHash.gperf"
290 {"From", Http::HdrType::FROM, Http::HdrFieldType::ftStr, HdrKind::RequestHeader},
291#line 40 "RegisteredHeadersHash.gperf"
292 {"Content-Encoding", Http::HdrType::CONTENT_ENCODING, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::EntityHeader},
293#line 31 "RegisteredHeadersHash.gperf"
294 {"Alternate-Protocol", Http::HdrType::ALTERNATE_PROTOCOL, Http::HdrFieldType::ftStr, HdrKind::HopByHopHeader},
295#line 101 "RegisteredHeadersHash.gperf"
296 {"Surrogate-Capability", Http::HdrType::SURROGATE_CAPABILITY, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
297#line 27 "RegisteredHeadersHash.gperf"
298 {"Accept-Language", Http::HdrType::ACCEPT_LANGUAGE, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader},
299#line 104 "RegisteredHeadersHash.gperf"
300 {"FTP-Command", Http::HdrType::FTP_COMMAND, Http::HdrFieldType::ftStr, HdrKind::None},
301#line 71 "RegisteredHeadersHash.gperf"
302 {"Priority", Http::HdrType::PRIORITY, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader},
303#line 35 "RegisteredHeadersHash.gperf"
304 {"Cache-Status", Http::HdrType::CACHE_STATUS, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
305#line 28 "RegisteredHeadersHash.gperf"
306 {"Accept-Ranges", Http::HdrType::ACCEPT_RANGES, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
307#line 83 "RegisteredHeadersHash.gperf"
308 {"Set-Cookie", Http::HdrType::SET_COOKIE, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
309#line 61 "RegisteredHeadersHash.gperf"
310 {"Keep-Alive", Http::HdrType::KEEP_ALIVE, Http::HdrFieldType::ftStr, HdrKind::HopByHopHeader},
311#line 34 "RegisteredHeadersHash.gperf"
312 {"Cache-Control", Http::HdrType::CACHE_CONTROL, Http::HdrFieldType::ftPCc, HdrKind::ListHeader|HdrKind::GeneralHeader},
313#line 95 "RegisteredHeadersHash.gperf"
314 {"WWW-Authenticate", Http::HdrType::WWW_AUTHENTICATE, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
315#line 53 "RegisteredHeadersHash.gperf"
316 {"Forwarded", Http::HdrType::FORWARDED, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader},
317#line 38 "RegisteredHeadersHash.gperf"
318 {"Content-Base", Http::HdrType::CONTENT_BASE, Http::HdrFieldType::ftStr, HdrKind::EntityHeader},
319#line 99 "RegisteredHeadersHash.gperf"
320 {"X-Accelerator-Vary", Http::HdrType::HDR_X_ACCELERATOR_VARY, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::ReplyHeader},
321#line 102 "RegisteredHeadersHash.gperf"
322 {"Surrogate-Control", Http::HdrType::SURROGATE_CONTROL, Http::HdrFieldType::ftPSc, HdrKind::ListHeader|HdrKind::ReplyHeader},
323#line 57 "RegisteredHeadersHash.gperf"
324 {"If-Modified-Since", Http::HdrType::IF_MODIFIED_SINCE, Http::HdrFieldType::ftDate_1123, HdrKind::RequestHeader},
325#line 30 "RegisteredHeadersHash.gperf"
326 {"Allow", Http::HdrType::ALLOW, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::EntityHeader},
327#line 60 "RegisteredHeadersHash.gperf"
328 {"If-Unmodified-Since", Http::HdrType::IF_UNMODIFIED_SINCE, Http::HdrFieldType::ftDate_1123, HdrKind::None},
329#line 26 "RegisteredHeadersHash.gperf"
330 {"Accept-Encoding", Http::HdrType::ACCEPT_ENCODING, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::RequestHeader|HdrKind::ReplyHeader},
331#line 107 "RegisteredHeadersHash.gperf"
332 {"FTP-Status", Http::HdrType::FTP_STATUS, Http::HdrFieldType::ftInt, HdrKind::None},
333#line 77 "RegisteredHeadersHash.gperf"
334 {"Public", Http::HdrType::PUBLIC, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
335#line 88 "RegisteredHeadersHash.gperf"
336 {"Transfer-Encoding", Http::HdrType::TRANSFER_ENCODING, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader|HdrKind::HopByHopHeader},
337#line 67 "RegisteredHeadersHash.gperf"
338 {"Mime-Version", Http::HdrType::MIME_VERSION, Http::HdrFieldType::ftStr, HdrKind::GeneralHeader},
339#line 80 "RegisteredHeadersHash.gperf"
340 {"Request-Range", Http::HdrType::REQUEST_RANGE, Http::HdrFieldType::ftPRange, HdrKind::None},
341#line 84 "RegisteredHeadersHash.gperf"
342 {"Set-Cookie2", Http::HdrType::SET_COOKIE2, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
343#line 96 "RegisteredHeadersHash.gperf"
344 {"X-Forwarded-For", Http::HdrType::X_FORWARDED_FOR, Http::HdrFieldType::ftStr, HdrKind::ListHeader|HdrKind::GeneralHeader},
345#line 44 "RegisteredHeadersHash.gperf"
346 {"Content-MD5", Http::HdrType::CONTENT_MD5, Http::HdrFieldType::ftStr, HdrKind::EntityHeader},
347#line 97 "RegisteredHeadersHash.gperf"
348 {"X-Request-URI", Http::HdrType::X_REQUEST_URI, Http::HdrFieldType::ftStr, HdrKind::ReplyHeader},
349#line 58 "RegisteredHeadersHash.gperf"
350 {"If-None-Match", Http::HdrType::IF_NONE_MATCH, Http::HdrFieldType::ftStr, HdrKind::ListHeader},
351#line 110 "RegisteredHeadersHash.gperf"
352 {"*INVALID*:", Http::HdrType::BAD_HDR, Http::HdrFieldType::ftInvalid, HdrKind::None},
353#line 63 "RegisteredHeadersHash.gperf"
354 {"Last-Modified", Http::HdrType::LAST_MODIFIED, Http::HdrFieldType::ftDate_1123, HdrKind::EntityHeader},
355 {""}, {""}, {""}, {""}, {""},
356#line 105 "RegisteredHeadersHash.gperf"
357 {"FTP-Arguments", Http::HdrType::FTP_ARGUMENTS, Http::HdrFieldType::ftStr, HdrKind::None}
360const class HeaderTableRecord *
361 HttpHeaderHashTable::lookup (const char *str, size_t len)
363 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
365 unsigned int key = HttpHeaderHash (str, len);
367 if (key <= MAX_HASH_VALUE)
368 if (len == lengthtable[key])
370 const char *s = HttpHeaderDefinitionsTable[key].name;
372 if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_memcmp (str, s, len))
373 return &HttpHeaderDefinitionsTable[key];
378#line 111 "RegisteredHeadersHash.gperf"