Coverage Report

Created: 2023-06-07 06:03

/src/resiprocate/resip/stack/gen/HeaderHash.cxx
Line
Count
Source (jump to first uncovered line)
1
/* C++ code produced by gperf version 3.1 */
2
/* Command-line: gperf -C -D -E -L C++ -t --key-positions='*' --compare-strncmp --ignore-case -Z HeaderHash HeaderHash.gperf  */
3
4
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
5
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
6
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
7
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
8
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
9
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
10
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
11
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
12
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
13
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
14
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
15
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
16
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
17
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
18
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
19
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
20
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
21
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
22
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
23
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
24
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
25
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
26
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
27
/* The character set is not based on ISO-646.  */
28
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
29
#endif
30
31
#line 1 "HeaderHash.gperf"
32
33
#include <string.h>
34
#include <ctype.h>
35
#include "resip/stack/HeaderTypes.hxx"
36
37
namespace resip
38
{
39
using namespace std;
40
#line 10 "HeaderHash.gperf"
41
struct headers { const char *name; Headers::Type type; };
42
/* maximum key range = 438, duplicates = 0 */
43
44
#ifndef GPERF_DOWNCASE
45
#define GPERF_DOWNCASE 1
46
static unsigned char gperf_downcase[256] =
47
  {
48
      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
49
     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
50
     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
51
     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
52
     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
53
    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
54
    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
55
    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
56
    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
57
    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
58
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
59
    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
60
    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
61
    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
62
    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
63
    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
64
    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
65
    255
66
  };
67
#endif
68
69
#ifndef GPERF_CASE_STRNCMP
70
#define GPERF_CASE_STRNCMP 1
71
static int
72
gperf_case_strncmp (const char *s1, const char *s2, size_t n)
73
856k
{
74
1.71M
  for (; n > 0;)
75
856k
    {
76
856k
      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
77
856k
      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
78
856k
      if (c1 != 0 && c1 == c2)
79
856k
        {
80
856k
          n--;
81
856k
          continue;
82
856k
        }
83
253
      return (int)c1 - (int)c2;
84
856k
    }
85
856k
  return 0;
86
856k
}
87
#endif
88
89
class HeaderHash
90
{
91
private:
92
  static inline unsigned int hash (const char *str, size_t len);
93
public:
94
  static const struct headers *in_word_set (const char *str, size_t len);
95
};
96
97
inline unsigned int
98
HeaderHash::hash (const char *str, size_t len)
99
1.06M
{
100
1.06M
  static const unsigned short asso_values[] =
101
1.06M
    {
102
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
103
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
104
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
105
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
106
1.06M
      439, 439, 439, 439, 439,   0, 439, 439, 439,   5,
107
1.06M
        0, 439, 439, 439, 439, 439, 439, 439, 439, 439,
108
1.06M
      439, 439, 439, 439, 439,   0,  65,  25,   0,  20,
109
1.06M
       45,   5,  15,  30,  15,  80,  50,  40,   0,   5,
110
1.06M
        0,  30,  15,  10,   0,   0,  70,   0, 110,  35,
111
1.06M
        0, 439, 439, 439, 439, 439, 439,   0,  65,  25,
112
1.06M
        0,  20,  45,   5,  15,  30,  15,  80,  50,  40,
113
1.06M
        0,   5,   0,  30,  15,  10,   0,   0,  70,   0,
114
1.06M
      110,  35,   0, 439, 439, 439, 439, 439, 439, 439,
115
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
116
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
117
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
118
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
119
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
120
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
121
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
122
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
123
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
124
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
125
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
126
1.06M
      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
127
1.06M
      439, 439, 439, 439, 439, 439
128
1.06M
    };
129
1.06M
  unsigned int hval = len;
130
131
1.06M
  switch (hval)
132
1.06M
    {
133
217
      default:
134
217
        hval += asso_values[static_cast<unsigned char>(str[28])];
135
      /*FALLTHROUGH*/
136
480
      case 28:
137
480
        hval += asso_values[static_cast<unsigned char>(str[27])];
138
      /*FALLTHROUGH*/
139
724
      case 27:
140
724
        hval += asso_values[static_cast<unsigned char>(str[26])];
141
      /*FALLTHROUGH*/
142
1.24k
      case 26:
143
1.24k
        hval += asso_values[static_cast<unsigned char>(str[25])];
144
      /*FALLTHROUGH*/
145
1.47k
      case 25:
146
1.47k
        hval += asso_values[static_cast<unsigned char>(str[24])];
147
      /*FALLTHROUGH*/
148
1.90k
      case 24:
149
1.90k
        hval += asso_values[static_cast<unsigned char>(str[23])];
150
      /*FALLTHROUGH*/
151
2.49k
      case 23:
152
2.49k
        hval += asso_values[static_cast<unsigned char>(str[22])];
153
      /*FALLTHROUGH*/
154
2.95k
      case 22:
155
2.95k
        hval += asso_values[static_cast<unsigned char>(str[21])];
156
      /*FALLTHROUGH*/
157
3.44k
      case 21:
158
3.44k
        hval += asso_values[static_cast<unsigned char>(str[20])];
159
      /*FALLTHROUGH*/
160
3.88k
      case 20:
161
3.88k
        hval += asso_values[static_cast<unsigned char>(str[19])];
162
      /*FALLTHROUGH*/
163
4.82k
      case 19:
164
4.82k
        hval += asso_values[static_cast<unsigned char>(str[18])];
165
      /*FALLTHROUGH*/
166
5.18k
      case 18:
167
5.18k
        hval += asso_values[static_cast<unsigned char>(str[17])];
168
      /*FALLTHROUGH*/
169
5.63k
      case 17:
170
5.63k
        hval += asso_values[static_cast<unsigned char>(str[16])];
171
      /*FALLTHROUGH*/
172
6.65k
      case 16:
173
6.65k
        hval += asso_values[static_cast<unsigned char>(str[15])];
174
      /*FALLTHROUGH*/
175
7.35k
      case 15:
176
7.35k
        hval += asso_values[static_cast<unsigned char>(str[14])];
177
      /*FALLTHROUGH*/
178
7.83k
      case 14:
179
7.83k
        hval += asso_values[static_cast<unsigned char>(str[13])];
180
      /*FALLTHROUGH*/
181
10.5k
      case 13:
182
10.5k
        hval += asso_values[static_cast<unsigned char>(str[12])];
183
      /*FALLTHROUGH*/
184
12.8k
      case 12:
185
12.8k
        hval += asso_values[static_cast<unsigned char>(str[11])];
186
      /*FALLTHROUGH*/
187
14.1k
      case 11:
188
14.1k
        hval += asso_values[static_cast<unsigned char>(str[10])];
189
      /*FALLTHROUGH*/
190
16.1k
      case 10:
191
16.1k
        hval += asso_values[static_cast<unsigned char>(str[9])];
192
      /*FALLTHROUGH*/
193
20.6k
      case 9:
194
20.6k
        hval += asso_values[static_cast<unsigned char>(str[8])];
195
      /*FALLTHROUGH*/
196
28.3k
      case 8:
197
28.3k
        hval += asso_values[static_cast<unsigned char>(str[7])];
198
      /*FALLTHROUGH*/
199
33.6k
      case 7:
200
33.6k
        hval += asso_values[static_cast<unsigned char>(str[6])];
201
      /*FALLTHROUGH*/
202
39.7k
      case 6:
203
39.7k
        hval += asso_values[static_cast<unsigned char>(str[5])];
204
      /*FALLTHROUGH*/
205
51.6k
      case 5:
206
51.6k
        hval += asso_values[static_cast<unsigned char>(str[4])];
207
      /*FALLTHROUGH*/
208
73.9k
      case 4:
209
73.9k
        hval += asso_values[static_cast<unsigned char>(str[3])];
210
      /*FALLTHROUGH*/
211
90.8k
      case 3:
212
90.8k
        hval += asso_values[static_cast<unsigned char>(str[2])];
213
      /*FALLTHROUGH*/
214
136k
      case 2:
215
136k
        hval += asso_values[static_cast<unsigned char>(str[1])];
216
      /*FALLTHROUGH*/
217
1.06M
      case 1:
218
1.06M
        hval += asso_values[static_cast<unsigned char>(str[0])];
219
1.06M
        break;
220
1.06M
    }
221
1.06M
  return hval;
222
1.06M
}
223
224
const struct headers *
225
HeaderHash::in_word_set (const char *str, size_t len)
226
1.13M
{
227
1.13M
  enum
228
1.13M
    {
229
1.13M
      TOTAL_KEYWORDS = 113,
230
1.13M
      MIN_WORD_LENGTH = 1,
231
1.13M
      MAX_WORD_LENGTH = 29,
232
1.13M
      MIN_HASH_VALUE = 1,
233
1.13M
      MAX_HASH_VALUE = 438
234
1.13M
    };
235
236
1.13M
  static const struct headers wordlist[] =
237
1.13M
    {
238
1.13M
#line 20 "HeaderHash.gperf"
239
1.13M
      {"t", Headers::To},
240
1.13M
#line 26 "HeaderHash.gperf"
241
1.13M
      {"o", Headers::Event},
242
1.13M
#line 36 "HeaderHash.gperf"
243
1.13M
      {"to", Headers::To},
244
1.13M
#line 18 "HeaderHash.gperf"
245
1.13M
      {"s", Headers::Subject},
246
1.13M
#line 22 "HeaderHash.gperf"
247
1.13M
      {"r", Headers::ReferTo},
248
1.13M
#line 99 "HeaderHash.gperf"
249
1.13M
      {"path", Headers::Path},
250
1.13M
#line 14 "HeaderHash.gperf"
251
1.13M
      {"e", Headers::ContentEncoding},
252
1.13M
#line 52 "HeaderHash.gperf"
253
1.13M
      {"date", Headers::Date},
254
1.13M
#line 16 "HeaderHash.gperf"
255
1.13M
      {"c", Headers::ContentType},
256
1.13M
#line 12 "HeaderHash.gperf"
257
1.13M
      {"i", Headers::CallID},
258
1.13M
#line 64 "HeaderHash.gperf"
259
1.13M
      {"host", Headers::Host},
260
1.13M
#line 25 "HeaderHash.gperf"
261
1.13M
      {"y", Headers::Identity},
262
1.13M
#line 13 "HeaderHash.gperf"
263
1.13M
      {"m", Headers::Contact},
264
1.13M
#line 34 "HeaderHash.gperf"
265
1.13M
      {"route", Headers::Route},
266
1.13M
#line 17 "HeaderHash.gperf"
267
1.13M
      {"f", Headers::From},
268
1.13M
#line 15 "HeaderHash.gperf"
269
1.13M
      {"l", Headers::ContentLength},
270
1.13M
#line 93 "HeaderHash.gperf"
271
1.13M
      {"join", Headers::Join},
272
1.13M
#line 103 "HeaderHash.gperf"
273
1.13M
      {"reason", Headers::Reason},
274
1.13M
#line 83 "HeaderHash.gperf"
275
1.13M
      {"warning", Headers::Warning},
276
1.13M
#line 77 "HeaderHash.gperf"
277
1.13M
      {"supported", Headers::Supported},
278
1.13M
#line 81 "HeaderHash.gperf"
279
1.13M
      {"unsupported", Headers::Unsupported},
280
1.13M
#line 29 "HeaderHash.gperf"
281
1.13M
      {"contact", Headers::Contact},
282
1.13M
#line 23 "HeaderHash.gperf"
283
1.13M
      {"b", Headers::ReferredBy},
284
1.13M
#line 90 "HeaderHash.gperf"
285
1.13M
      {"hide", Headers::UNKNOWN},
286
1.13M
#line 21 "HeaderHash.gperf"
287
1.13M
      {"v", Headers::Via},
288
1.13M
#line 75 "HeaderHash.gperf"
289
1.13M
      {"sip-etag", Headers::SIPETag},
290
1.13M
#line 38 "HeaderHash.gperf"
291
1.13M
      {"accept", Headers::Accept},
292
1.13M
#line 110 "HeaderHash.gperf"
293
1.13M
      {"rseq", Headers::RSeq},
294
1.13M
#line 82 "HeaderHash.gperf"
295
1.13M
      {"user-agent", Headers::UserAgent},
296
1.13M
#line 19 "HeaderHash.gperf"
297
1.13M
      {"k", Headers::Supported},
298
1.13M
#line 27 "HeaderHash.gperf"
299
1.13M
      {"cseq", Headers::CSeq},
300
1.13M
#line 47 "HeaderHash.gperf"
301
1.13M
      {"content-id", Headers::ContentId},
302
1.13M
#line 63 "HeaderHash.gperf"
303
1.13M
      {"origin", Headers::Origin},
304
1.13M
#line 57 "HeaderHash.gperf"
305
1.13M
      {"organization", Headers::Organization},
306
1.13M
#line 37 "HeaderHash.gperf"
307
1.13M
      {"via", Headers::Via},
308
1.13M
#line 116 "HeaderHash.gperf"
309
1.13M
      {"min-se", Headers::MinSE},
310
1.13M
#line 124 "HeaderHash.gperf"
311
1.13M
      {"user-to-user", Headers::UserToUser},
312
1.13M
#line 32 "HeaderHash.gperf"
313
1.13M
      {"from", Headers::From},
314
1.13M
#line 43 "HeaderHash.gperf"
315
1.13M
      {"allow", Headers::Allow},
316
1.13M
#line 24 "HeaderHash.gperf"
317
1.13M
      {"x", Headers::SessionExpires},
318
1.13M
#line 86 "HeaderHash.gperf"
319
1.13M
      {"authorization", Headers::Authorization},
320
1.13M
#line 89 "HeaderHash.gperf"
321
1.13M
      {"event", Headers::Event},
322
1.13M
#line 50 "HeaderHash.gperf"
323
1.13M
      {"content-type", Headers::ContentType},
324
1.13M
#line 79 "HeaderHash.gperf"
325
1.13M
      {"answer-mode", Headers::AnswerMode},
326
1.13M
#line 91 "HeaderHash.gperf"
327
1.13M
      {"identity", Headers::Identity},
328
1.13M
#line 102 "HeaderHash.gperf"
329
1.13M
      {"rack", Headers::RAck},
330
1.13M
#line 84 "HeaderHash.gperf"
331
1.13M
      {"www-authenticate",Headers::WWWAuthenticate},
332
1.13M
#line 104 "HeaderHash.gperf"
333
1.13M
      {"refer-to",Headers::ReferTo},
334
1.13M
#line 69 "HeaderHash.gperf"
335
1.13M
      {"record-route", Headers::RecordRoute},
336
1.13M
#line 70 "HeaderHash.gperf"
337
1.13M
      {"reply-to", Headers::ReplyTo},
338
1.13M
#line 71 "HeaderHash.gperf"
339
1.13M
      {"require", Headers::Require},
340
1.13M
#line 65 "HeaderHash.gperf"
341
1.13M
      {"priority", Headers::Priority},
342
1.13M
#line 39 "HeaderHash.gperf"
343
1.13M
      {"accept-contact", Headers::AcceptContact},
344
1.13M
#line 88 "HeaderHash.gperf"
345
1.13M
      {"encryption", Headers::UNKNOWN},
346
1.13M
#line 35 "HeaderHash.gperf"
347
1.13M
      {"subject", Headers::Subject},
348
1.13M
#line 100 "HeaderHash.gperf"
349
1.13M
      {"target-dialog", Headers::TargetDialog},
350
1.13M
#line 49 "HeaderHash.gperf"
351
1.13M
      {"content-language", Headers::ContentLanguage},
352
1.13M
#line 106 "HeaderHash.gperf"
353
1.13M
      {"replaces",Headers::Replaces},
354
1.13M
#line 78 "HeaderHash.gperf"
355
1.13M
      {"timestamp", Headers::Timestamp},
356
1.13M
#line 48 "HeaderHash.gperf"
357
1.13M
      {"content-encoding", Headers::ContentEncoding},
358
1.13M
#line 30 "HeaderHash.gperf"
359
1.13M
      {"content-length", Headers::ContentLength},
360
1.13M
#line 74 "HeaderHash.gperf"
361
1.13M
      {"server", Headers::Server},
362
1.13M
#line 53 "HeaderHash.gperf"
363
1.13M
      {"error-info", Headers::ErrorInfo},
364
1.13M
#line 95 "HeaderHash.gperf"
365
1.13M
      {"p-associated-uri", Headers::PAssociatedUri},
366
1.13M
#line 28 "HeaderHash.gperf"
367
1.13M
      {"call-id", Headers::CallID},
368
1.13M
#line 107 "HeaderHash.gperf"
369
1.13M
      {"reject-contact", Headers::RejectContact},
370
1.13M
#line 41 "HeaderHash.gperf"
371
1.13M
      {"accept-language", Headers::AcceptLanguage},
372
1.13M
#line 54 "HeaderHash.gperf"
373
1.13M
      {"in-reply-to", Headers::InReplyTo},
374
1.13M
#line 40 "HeaderHash.gperf"
375
1.13M
      {"accept-encoding", Headers::AcceptEncoding},
376
1.13M
#line 62 "HeaderHash.gperf"
377
1.13M
      {"cookie", Headers::Cookie},
378
1.13M
#line 42 "HeaderHash.gperf"
379
1.13M
      {"alert-info",Headers::AlertInfo},
380
1.13M
#line 72 "HeaderHash.gperf"
381
1.13M
      {"retry-after", Headers::RetryAfter},
382
1.13M
#line 101 "HeaderHash.gperf"
383
1.13M
      {"privacy", Headers::Privacy},
384
1.13M
#line 46 "HeaderHash.gperf"
385
1.13M
      {"content-disposition", Headers::ContentDisposition},
386
1.13M
#line 118 "HeaderHash.gperf"
387
1.13M
      {"remote-party-id", Headers::RemotePartyId},
388
1.13M
#line 117 "HeaderHash.gperf"
389
1.13M
      {"refer-sub", Headers::ReferSub},
390
1.13M
#line 119 "HeaderHash.gperf"
391
1.13M
      {"history-info", Headers::HistoryInfo},
392
1.13M
#line 76 "HeaderHash.gperf"
393
1.13M
      {"sip-if-match", Headers::SIPIfMatch},
394
1.13M
#line 92 "HeaderHash.gperf"
395
1.13M
      {"identity-info", Headers::IdentityInfo},
396
1.13M
#line 94 "HeaderHash.gperf"
397
1.13M
      {"p-asserted-identity", Headers::PAssertedIdentity},
398
1.13M
#line 97 "HeaderHash.gperf"
399
1.13M
      {"p-media-authorization", Headers::PMediaAuthorization},
400
1.13M
#line 31 "HeaderHash.gperf"
401
1.13M
      {"expires", Headers::Expires},
402
1.13M
#line 45 "HeaderHash.gperf"
403
1.13M
      {"call-info", Headers::CallInfo},
404
1.13M
#line 73 "HeaderHash.gperf"
405
1.13M
      {"flow-timer", Headers::FlowTimer},
406
1.13M
#line 44 "HeaderHash.gperf"
407
1.13M
      {"authentication-info", Headers::AuthenticationInfo},
408
1.13M
#line 109 "HeaderHash.gperf"
409
1.13M
      {"response-key", Headers::UNKNOWN},
410
1.13M
#line 108 "HeaderHash.gperf"
411
1.13M
      {"request-disposition", Headers::RequestDisposition},
412
1.13M
#line 87 "HeaderHash.gperf"
413
1.13M
      {"allow-events", Headers::AllowEvents},
414
1.13M
#line 85 "HeaderHash.gperf"
415
1.13M
      {"subscription-state",Headers::SubscriptionState},
416
1.13M
#line 80 "HeaderHash.gperf"
417
1.13M
      {"priv-answer-mode", Headers::PrivAnswerMode},
418
1.13M
#line 96 "HeaderHash.gperf"
419
1.13M
      {"p-called-party-id", Headers::PCalledPartyId},
420
1.13M
#line 114 "HeaderHash.gperf"
421
1.13M
      {"service-route", Headers::ServiceRoute},
422
1.13M
#line 121 "HeaderHash.gperf"
423
1.13M
      {"p-charging-vector", Headers::PChargingVector},
424
1.13M
#line 33 "HeaderHash.gperf"
425
1.13M
      {"max-forwards", Headers::MaxForwards},
426
1.13M
#line 105 "HeaderHash.gperf"
427
1.13M
      {"referred-by",Headers::ReferredBy},
428
1.13M
#line 51 "HeaderHash.gperf"
429
1.13M
      {"content-transfer-encoding", Headers::ContentTransferEncoding},
430
1.13M
#line 111 "HeaderHash.gperf"
431
1.13M
      {"security-client", Headers::SecurityClient},
432
1.13M
#line 67 "HeaderHash.gperf"
433
1.13M
      {"proxy-authorization", Headers::ProxyAuthorization},
434
1.13M
#line 98 "HeaderHash.gperf"
435
1.13M
      {"p-preferred-identity", Headers::PPreferredIdentity},
436
1.13M
#line 55 "HeaderHash.gperf"
437
1.13M
      {"min-expires", Headers::MinExpires},
438
1.13M
#line 56 "HeaderHash.gperf"
439
1.13M
      {"mime-version", Headers::MIMEVersion},
440
1.13M
#line 66 "HeaderHash.gperf"
441
1.13M
      {"proxy-authenticate", Headers::ProxyAuthenticate},
442
1.13M
#line 112 "HeaderHash.gperf"
443
1.13M
      {"security-server", Headers::SecurityServer},
444
1.13M
#line 115 "HeaderHash.gperf"
445
1.13M
      {"session-expires", Headers::SessionExpires},
446
1.13M
#line 68 "HeaderHash.gperf"
447
1.13M
      {"proxy-require", Headers::ProxyRequire},
448
1.13M
#line 120 "HeaderHash.gperf"
449
1.13M
      {"p-access-network-info", Headers::PAccessNetworkInfo},
450
1.13M
#line 122 "HeaderHash.gperf"
451
1.13M
      {"p-charging-function-addresses", Headers::PChargingFunctionAddresses},
452
1.13M
#line 123 "HeaderHash.gperf"
453
1.13M
      {"p-visited-network-id", Headers::PVisitedNetworkID},
454
1.13M
#line 113 "HeaderHash.gperf"
455
1.13M
      {"security-verify", Headers::SecurityVerify},
456
1.13M
#line 61 "HeaderHash.gperf"
457
1.13M
      {"sec-websocket-accept", Headers::SecWebSocketAccept},
458
1.13M
#line 58 "HeaderHash.gperf"
459
1.13M
      {"sec-websocket-key", Headers::SecWebSocketKey},
460
1.13M
#line 60 "HeaderHash.gperf"
461
1.13M
      {"sec-websocket-key2", Headers::SecWebSocketKey2},
462
1.13M
#line 59 "HeaderHash.gperf"
463
1.13M
      {"sec-websocket-key1", Headers::SecWebSocketKey1}
464
1.13M
    };
465
466
1.13M
  static const signed char lookup[] =
467
1.13M
    {
468
1.13M
       -1,   0,  -1,  -1,  -1,  -1,   1,   2,  -1,  -1,
469
1.13M
       -1,   3,  -1,  -1,  -1,  -1,   4,  -1,  -1,   5,
470
1.13M
       -1,   6,  -1,  -1,   7,  -1,   8,  -1,  -1,  -1,
471
1.13M
       -1,   9,  -1,  -1,  10,  -1,  11,  -1,  -1,  -1,
472
1.13M
       -1,  12,  -1,  -1,  -1,  13,  14,  -1,  -1,  -1,
473
1.13M
       -1,  15,  -1,  -1,  16,  -1,  17,  18,  -1,  19,
474
1.13M
       -1,  20,  21,  -1,  -1,  -1,  22,  -1,  -1,  23,
475
1.13M
       -1,  24,  -1,  25,  -1,  -1,  26,  -1,  -1,  27,
476
1.13M
       28,  29,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  30,
477
1.13M
       31,  32,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
478
1.13M
       -1,  -1,  33,  34,  -1,  -1,  35,  36,  -1,  37,
479
1.13M
       38,  39,  -1,  40,  -1,  41,  -1,  42,  -1,  -1,
480
1.13M
       -1,  43,  -1,  44,  45,  -1,  46,  -1,  47,  -1,
481
1.13M
       -1,  -1,  48,  49,  -1,  -1,  -1,  50,  51,  52,
482
1.13M
       53,  -1,  54,  55,  -1,  -1,  56,  -1,  57,  58,
483
1.13M
       -1,  59,  -1,  -1,  60,  -1,  61,  -1,  -1,  -1,
484
1.13M
       62,  63,  64,  -1,  65,  66,  67,  -1,  -1,  -1,
485
1.13M
       68,  69,  -1,  -1,  -1,  70,  71,  -1,  -1,  -1,
486
1.13M
       -1,  -1,  72,  -1,  -1,  -1,  -1,  -1,  -1,  73,
487
1.13M
       -1,  -1,  -1,  -1,  -1,  74,  -1,  -1,  -1,  75,
488
1.13M
       -1,  -1,  76,  -1,  -1,  -1,  -1,  77,  78,  79,
489
1.13M
       -1,  80,  81,  -1,  82,  83,  -1,  -1,  -1,  -1,
490
1.13M
       -1,  -1,  -1,  -1,  84,  -1,  -1,  85,  -1,  -1,
491
1.13M
       -1,  -1,  -1,  -1,  86,  -1,  -1,  87,  88,  -1,
492
1.13M
       -1,  89,  90,  91,  -1,  -1,  -1,  92,  -1,  -1,
493
1.13M
       -1,  -1,  93,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
494
1.13M
       -1,  94,  -1,  -1,  -1,  95,  -1,  -1,  -1,  -1,
495
1.13M
       -1,  -1,  -1,  -1,  -1,  96,  -1,  -1,  -1,  -1,
496
1.13M
       -1,  -1,  -1,  -1,  97,  98,  99,  -1,  -1,  -1,
497
1.13M
       -1,  -1, 100, 101,  -1,  -1,  -1,  -1,  -1,  -1,
498
1.13M
      102,  -1,  -1,  -1,  -1, 103,  -1,  -1, 104,  -1,
499
1.13M
       -1, 105,  -1,  -1, 106,  -1,  -1,  -1,  -1,  -1,
500
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
501
1.13M
      107,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
502
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
503
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
504
1.13M
       -1,  -1,  -1,  -1,  -1, 108,  -1,  -1,  -1,  -1,
505
1.13M
      109,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
506
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
507
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
508
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
509
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
510
1.13M
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
511
1.13M
       -1,  -1, 110, 111,  -1,  -1,  -1,  -1, 112
512
1.13M
    };
513
514
1.13M
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
515
1.06M
    {
516
1.06M
      unsigned int key = hash (str, len);
517
518
1.06M
      if (key <= MAX_HASH_VALUE)
519
885k
        {
520
885k
          int index = lookup[key];
521
522
885k
          if (index >= 0)
523
874k
            {
524
874k
              const char *s = wordlist[index].name;
525
526
874k
              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')
527
856k
                return &wordlist[index];
528
874k
            }
529
885k
        }
530
1.06M
    }
531
283k
  return 0;
532
1.13M
}
533
#line 125 "HeaderHash.gperf"
534
535
}