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