thin 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG +11 -0
- data/ext/thin_parser/common.rl +8 -4
- data/ext/thin_parser/parser.c +531 -328
- data/ext/thin_parser/parser.rl +9 -9
- data/ext/thin_parser/thin.c +3 -4
- data/lib/thin/backends/base.rb +13 -3
- data/lib/thin/command.rb +2 -2
- data/lib/thin/connection.rb +19 -15
- data/lib/thin/controllers/cluster.rb +4 -4
- data/lib/thin/controllers/controller.rb +5 -4
- data/lib/thin/controllers/service.rb +16 -16
- data/lib/thin/daemonizing.rb +10 -12
- data/lib/thin/logging.rb +144 -33
- data/lib/thin/request.rb +7 -1
- data/lib/thin/runner.rb +23 -6
- data/lib/thin/server.rb +47 -33
- data/lib/thin/stats.rb +1 -1
- data/lib/thin/version.rb +3 -3
- metadata +17 -26
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 13c2ffd42a7cc07c94af330e3582c7e374237996
|
4
|
+
data.tar.gz: 1bb300ea5acc2f29b7cbbaed31d82d8cb8c2f982
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 67e9807a927691ced178a91a30b31fd12d783447e030d05e4dd3883a9ce7c62e69a41544e95680d3ab149f4ba6f5be7d9f8d024d3687db73d67c0059ab188655
|
7
|
+
data.tar.gz: c5726af50de902ea517436fe3d1e04301a9de8b6e55e475912effdc6f04a269cc67c864ea5ea41348a4809b474a0861d94c2f38dc1e4e5566904fea94aedf5ce
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
== 1.6.0 Greek Yogurt
|
2
|
+
* Accept absolute URL in request line, eg.: 'GET http://site.com/he/lo HTTP/1.1'.
|
3
|
+
* HEAD request no longer return a body in the response.
|
4
|
+
* No longer stop EventMachine's reactor loop unless it was started by Thin.
|
5
|
+
* Make request env keys upcasing locale-agnostic.
|
6
|
+
* Use Ruby's `Logger` for logging. [Akshay Moghe].
|
7
|
+
The logger can now be set using `Thin::Logging.logger=`.
|
8
|
+
Tracing of request is handled by a second logger, `Thin::Logging.trace_logger=`.
|
9
|
+
* Add --threadpool-size option to configure EM's thread pool size (default: 20).
|
10
|
+
* Pipelining is no longer supported.
|
11
|
+
|
1
12
|
== 1.5.1 Straight Razor
|
2
13
|
* Fix issue when running as another user/group without a PID file.
|
3
14
|
* Allow overriding Connection & Server response headers.
|
data/ext/thin_parser/common.rl
CHANGED
@@ -24,17 +24,21 @@
|
|
24
24
|
token = (ascii -- (CTL | tspecials));
|
25
25
|
|
26
26
|
# URI schemes and absolute paths
|
27
|
-
scheme = (
|
28
|
-
|
27
|
+
scheme = ( "http"i ("s"i)? );
|
28
|
+
hostname = ((alnum | "-" | "." | "_")+ | ("[" (":" | xdigit)+ "]"));
|
29
|
+
host_with_port = (hostname (":" digit*)?);
|
30
|
+
userinfo = ((unreserved | escape | ";" | ":" | "&" | "=" | "+")+ "@")*;
|
29
31
|
|
30
32
|
path = ( pchar+ ( "/" pchar* )* ) ;
|
31
33
|
query = ( uchar | reserved )* %query_string ;
|
32
34
|
param = ( pchar | "/" )* ;
|
33
35
|
params = ( param ( ";" param )* ) ;
|
34
|
-
rel_path = (
|
36
|
+
rel_path = (path? (";" params)? %request_path) ("?" %start_query query)?;
|
35
37
|
absolute_path = ( "/"+ rel_path );
|
38
|
+
path_uri = absolute_path > mark %request_uri;
|
39
|
+
Absolute_URI = (scheme "://" userinfo host_with_port path_uri);
|
36
40
|
|
37
|
-
Request_URI = ( "*"
|
41
|
+
Request_URI = ((absolute_path | "*") >mark %request_uri) | Absolute_URI;
|
38
42
|
Fragment = ( uchar | reserved )* >mark %fragment;
|
39
43
|
Method = ( upper | digit | safe ){1,20} >mark %request_method;
|
40
44
|
|
data/ext/thin_parser/parser.c
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
#line 27 "parser.c"
|
27
27
|
static const int http_parser_start = 1;
|
28
|
-
static const int http_parser_first_final =
|
28
|
+
static const int http_parser_first_final = 70;
|
29
29
|
static const int http_parser_error = 0;
|
30
30
|
|
31
31
|
static const int http_parser_en_main = 1;
|
@@ -65,7 +65,7 @@ size_t thin_http_parser_execute(http_parser *parser, const char *buffer, size_t
|
|
65
65
|
pe = buffer+len;
|
66
66
|
|
67
67
|
assert(*pe == '\0' && "pointer does not end on NUL");
|
68
|
-
assert(pe - p == len - off && "pointers aren't same distance");
|
68
|
+
assert(pe - p == (long)(len - off) && "pointers aren't same distance");
|
69
69
|
|
70
70
|
|
71
71
|
|
@@ -103,17 +103,17 @@ case 2:
|
|
103
103
|
#line 104 "parser.c"
|
104
104
|
switch( (*p) ) {
|
105
105
|
case 32: goto tr2;
|
106
|
-
case 36: goto
|
107
|
-
case 95: goto
|
106
|
+
case 36: goto st51;
|
107
|
+
case 95: goto st51;
|
108
108
|
}
|
109
109
|
if ( (*p) < 48 ) {
|
110
110
|
if ( 45 <= (*p) && (*p) <= 46 )
|
111
|
-
goto
|
111
|
+
goto st51;
|
112
112
|
} else if ( (*p) > 57 ) {
|
113
113
|
if ( 65 <= (*p) && (*p) <= 90 )
|
114
|
-
goto
|
114
|
+
goto st51;
|
115
115
|
} else
|
116
|
-
goto
|
116
|
+
goto st51;
|
117
117
|
goto st0;
|
118
118
|
tr2:
|
119
119
|
#line 36 "parser.rl"
|
@@ -130,18 +130,10 @@ case 3:
|
|
130
130
|
#line 131 "parser.c"
|
131
131
|
switch( (*p) ) {
|
132
132
|
case 42: goto tr4;
|
133
|
-
case
|
134
|
-
case
|
135
|
-
case
|
133
|
+
case 47: goto tr5;
|
134
|
+
case 72: goto st34;
|
135
|
+
case 104: goto st34;
|
136
136
|
}
|
137
|
-
if ( (*p) < 65 ) {
|
138
|
-
if ( 45 <= (*p) && (*p) <= 57 )
|
139
|
-
goto tr5;
|
140
|
-
} else if ( (*p) > 90 ) {
|
141
|
-
if ( 97 <= (*p) && (*p) <= 122 )
|
142
|
-
goto tr5;
|
143
|
-
} else
|
144
|
-
goto tr5;
|
145
137
|
goto st0;
|
146
138
|
tr4:
|
147
139
|
#line 22 "parser.rl"
|
@@ -151,13 +143,13 @@ st4:
|
|
151
143
|
if ( ++p == pe )
|
152
144
|
goto _test_eof4;
|
153
145
|
case 4:
|
154
|
-
#line
|
146
|
+
#line 147 "parser.c"
|
155
147
|
switch( (*p) ) {
|
156
|
-
case 32: goto
|
157
|
-
case 35: goto
|
148
|
+
case 32: goto tr7;
|
149
|
+
case 35: goto tr8;
|
158
150
|
}
|
159
151
|
goto st0;
|
160
|
-
|
152
|
+
tr7:
|
161
153
|
#line 41 "parser.rl"
|
162
154
|
{
|
163
155
|
if (parser->request_uri != NULL) {
|
@@ -165,7 +157,7 @@ tr8:
|
|
165
157
|
}
|
166
158
|
}
|
167
159
|
goto st5;
|
168
|
-
|
160
|
+
tr30:
|
169
161
|
#line 22 "parser.rl"
|
170
162
|
{MARK(mark, p); }
|
171
163
|
#line 46 "parser.rl"
|
@@ -175,7 +167,7 @@ tr31:
|
|
175
167
|
}
|
176
168
|
}
|
177
169
|
goto st5;
|
178
|
-
|
170
|
+
tr33:
|
179
171
|
#line 46 "parser.rl"
|
180
172
|
{
|
181
173
|
if (parser->fragment != NULL) {
|
@@ -183,7 +175,7 @@ tr34:
|
|
183
175
|
}
|
184
176
|
}
|
185
177
|
goto st5;
|
186
|
-
|
178
|
+
tr38:
|
187
179
|
#line 65 "parser.rl"
|
188
180
|
{
|
189
181
|
if (parser->request_path != NULL) {
|
@@ -197,7 +189,7 @@ tr44:
|
|
197
189
|
}
|
198
190
|
}
|
199
191
|
goto st5;
|
200
|
-
|
192
|
+
tr45:
|
201
193
|
#line 52 "parser.rl"
|
202
194
|
{MARK(query_start, p); }
|
203
195
|
#line 53 "parser.rl"
|
@@ -213,7 +205,7 @@ tr51:
|
|
213
205
|
}
|
214
206
|
}
|
215
207
|
goto st5;
|
216
|
-
|
208
|
+
tr49:
|
217
209
|
#line 53 "parser.rl"
|
218
210
|
{
|
219
211
|
if (parser->query_string != NULL) {
|
@@ -231,11 +223,11 @@ st5:
|
|
231
223
|
if ( ++p == pe )
|
232
224
|
goto _test_eof5;
|
233
225
|
case 5:
|
234
|
-
#line
|
226
|
+
#line 227 "parser.c"
|
235
227
|
if ( (*p) == 72 )
|
236
|
-
goto
|
228
|
+
goto tr9;
|
237
229
|
goto st0;
|
238
|
-
|
230
|
+
tr9:
|
239
231
|
#line 22 "parser.rl"
|
240
232
|
{MARK(mark, p); }
|
241
233
|
goto st6;
|
@@ -243,7 +235,7 @@ st6:
|
|
243
235
|
if ( ++p == pe )
|
244
236
|
goto _test_eof6;
|
245
237
|
case 6:
|
246
|
-
#line
|
238
|
+
#line 239 "parser.c"
|
247
239
|
if ( (*p) == 84 )
|
248
240
|
goto st7;
|
249
241
|
goto st0;
|
@@ -296,11 +288,11 @@ st13:
|
|
296
288
|
goto _test_eof13;
|
297
289
|
case 13:
|
298
290
|
if ( (*p) == 13 )
|
299
|
-
goto
|
291
|
+
goto tr17;
|
300
292
|
if ( 48 <= (*p) && (*p) <= 57 )
|
301
293
|
goto st13;
|
302
294
|
goto st0;
|
303
|
-
|
295
|
+
tr17:
|
304
296
|
#line 59 "parser.rl"
|
305
297
|
{
|
306
298
|
if (parser->http_version != NULL) {
|
@@ -308,7 +300,7 @@ tr18:
|
|
308
300
|
}
|
309
301
|
}
|
310
302
|
goto st14;
|
311
|
-
|
303
|
+
tr25:
|
312
304
|
#line 30 "parser.rl"
|
313
305
|
{ MARK(mark, p); }
|
314
306
|
#line 31 "parser.rl"
|
@@ -318,7 +310,7 @@ tr26:
|
|
318
310
|
}
|
319
311
|
}
|
320
312
|
goto st14;
|
321
|
-
|
313
|
+
tr28:
|
322
314
|
#line 31 "parser.rl"
|
323
315
|
{
|
324
316
|
if (parser->http_field != NULL) {
|
@@ -330,7 +322,7 @@ st14:
|
|
330
322
|
if ( ++p == pe )
|
331
323
|
goto _test_eof14;
|
332
324
|
case 14:
|
333
|
-
#line
|
325
|
+
#line 326 "parser.c"
|
334
326
|
if ( (*p) == 10 )
|
335
327
|
goto st15;
|
336
328
|
goto st0;
|
@@ -340,52 +332,52 @@ st15:
|
|
340
332
|
case 15:
|
341
333
|
switch( (*p) ) {
|
342
334
|
case 13: goto st16;
|
343
|
-
case 33: goto
|
344
|
-
case 124: goto
|
345
|
-
case 126: goto
|
335
|
+
case 33: goto tr20;
|
336
|
+
case 124: goto tr20;
|
337
|
+
case 126: goto tr20;
|
346
338
|
}
|
347
339
|
if ( (*p) < 45 ) {
|
348
340
|
if ( (*p) > 39 ) {
|
349
341
|
if ( 42 <= (*p) && (*p) <= 43 )
|
350
|
-
goto
|
342
|
+
goto tr20;
|
351
343
|
} else if ( (*p) >= 35 )
|
352
|
-
goto
|
344
|
+
goto tr20;
|
353
345
|
} else if ( (*p) > 46 ) {
|
354
346
|
if ( (*p) < 65 ) {
|
355
347
|
if ( 48 <= (*p) && (*p) <= 57 )
|
356
|
-
goto
|
348
|
+
goto tr20;
|
357
349
|
} else if ( (*p) > 90 ) {
|
358
350
|
if ( 94 <= (*p) && (*p) <= 122 )
|
359
|
-
goto
|
351
|
+
goto tr20;
|
360
352
|
} else
|
361
|
-
goto
|
353
|
+
goto tr20;
|
362
354
|
} else
|
363
|
-
goto
|
355
|
+
goto tr20;
|
364
356
|
goto st0;
|
365
357
|
st16:
|
366
358
|
if ( ++p == pe )
|
367
359
|
goto _test_eof16;
|
368
360
|
case 16:
|
369
361
|
if ( (*p) == 10 )
|
370
|
-
goto
|
362
|
+
goto tr21;
|
371
363
|
goto st0;
|
372
|
-
|
364
|
+
tr21:
|
373
365
|
#line 71 "parser.rl"
|
374
366
|
{
|
375
367
|
parser->body_start = p - buffer + 1;
|
376
368
|
if (parser->header_done != NULL) {
|
377
369
|
parser->header_done(parser->data, p + 1, pe - p - 1);
|
378
370
|
}
|
379
|
-
{p++; cs =
|
371
|
+
{p++; cs = 70; goto _out;}
|
380
372
|
}
|
381
|
-
goto
|
382
|
-
|
373
|
+
goto st70;
|
374
|
+
st70:
|
383
375
|
if ( ++p == pe )
|
384
|
-
goto
|
385
|
-
case
|
386
|
-
#line
|
376
|
+
goto _test_eof70;
|
377
|
+
case 70:
|
378
|
+
#line 379 "parser.c"
|
387
379
|
goto st0;
|
388
|
-
|
380
|
+
tr20:
|
389
381
|
#line 25 "parser.rl"
|
390
382
|
{ MARK(field_start, p); }
|
391
383
|
goto st17;
|
@@ -393,10 +385,10 @@ st17:
|
|
393
385
|
if ( ++p == pe )
|
394
386
|
goto _test_eof17;
|
395
387
|
case 17:
|
396
|
-
#line
|
388
|
+
#line 389 "parser.c"
|
397
389
|
switch( (*p) ) {
|
398
390
|
case 33: goto st17;
|
399
|
-
case 58: goto
|
391
|
+
case 58: goto tr23;
|
400
392
|
case 124: goto st17;
|
401
393
|
case 126: goto st17;
|
402
394
|
}
|
@@ -418,13 +410,13 @@ case 17:
|
|
418
410
|
} else
|
419
411
|
goto st17;
|
420
412
|
goto st0;
|
421
|
-
|
413
|
+
tr23:
|
422
414
|
#line 26 "parser.rl"
|
423
415
|
{
|
424
416
|
parser->field_len = LEN(field_start, p);
|
425
417
|
}
|
426
418
|
goto st18;
|
427
|
-
|
419
|
+
tr26:
|
428
420
|
#line 30 "parser.rl"
|
429
421
|
{ MARK(mark, p); }
|
430
422
|
goto st18;
|
@@ -432,13 +424,13 @@ st18:
|
|
432
424
|
if ( ++p == pe )
|
433
425
|
goto _test_eof18;
|
434
426
|
case 18:
|
435
|
-
#line
|
427
|
+
#line 428 "parser.c"
|
436
428
|
switch( (*p) ) {
|
437
|
-
case 13: goto
|
438
|
-
case 32: goto
|
429
|
+
case 13: goto tr25;
|
430
|
+
case 32: goto tr26;
|
439
431
|
}
|
440
|
-
goto
|
441
|
-
|
432
|
+
goto tr24;
|
433
|
+
tr24:
|
442
434
|
#line 30 "parser.rl"
|
443
435
|
{ MARK(mark, p); }
|
444
436
|
goto st19;
|
@@ -446,11 +438,11 @@ st19:
|
|
446
438
|
if ( ++p == pe )
|
447
439
|
goto _test_eof19;
|
448
440
|
case 19:
|
449
|
-
#line
|
441
|
+
#line 442 "parser.c"
|
450
442
|
if ( (*p) == 13 )
|
451
|
-
goto
|
443
|
+
goto tr28;
|
452
444
|
goto st19;
|
453
|
-
|
445
|
+
tr8:
|
454
446
|
#line 41 "parser.rl"
|
455
447
|
{
|
456
448
|
if (parser->request_uri != NULL) {
|
@@ -458,7 +450,7 @@ tr9:
|
|
458
450
|
}
|
459
451
|
}
|
460
452
|
goto st20;
|
461
|
-
|
453
|
+
tr39:
|
462
454
|
#line 65 "parser.rl"
|
463
455
|
{
|
464
456
|
if (parser->request_path != NULL) {
|
@@ -472,7 +464,7 @@ tr45:
|
|
472
464
|
}
|
473
465
|
}
|
474
466
|
goto st20;
|
475
|
-
|
467
|
+
tr46:
|
476
468
|
#line 52 "parser.rl"
|
477
469
|
{MARK(query_start, p); }
|
478
470
|
#line 53 "parser.rl"
|
@@ -488,7 +480,7 @@ tr52:
|
|
488
480
|
}
|
489
481
|
}
|
490
482
|
goto st20;
|
491
|
-
|
483
|
+
tr50:
|
492
484
|
#line 53 "parser.rl"
|
493
485
|
{
|
494
486
|
if (parser->query_string != NULL) {
|
@@ -506,17 +498,17 @@ st20:
|
|
506
498
|
if ( ++p == pe )
|
507
499
|
goto _test_eof20;
|
508
500
|
case 20:
|
509
|
-
#line
|
501
|
+
#line 502 "parser.c"
|
510
502
|
switch( (*p) ) {
|
511
|
-
case 32: goto
|
503
|
+
case 32: goto tr30;
|
512
504
|
case 35: goto st0;
|
513
|
-
case 37: goto
|
505
|
+
case 37: goto tr31;
|
514
506
|
case 127: goto st0;
|
515
507
|
}
|
516
508
|
if ( 0 <= (*p) && (*p) <= 31 )
|
517
509
|
goto st0;
|
518
|
-
goto
|
519
|
-
|
510
|
+
goto tr29;
|
511
|
+
tr29:
|
520
512
|
#line 22 "parser.rl"
|
521
513
|
{MARK(mark, p); }
|
522
514
|
goto st21;
|
@@ -524,9 +516,9 @@ st21:
|
|
524
516
|
if ( ++p == pe )
|
525
517
|
goto _test_eof21;
|
526
518
|
case 21:
|
527
|
-
#line
|
519
|
+
#line 520 "parser.c"
|
528
520
|
switch( (*p) ) {
|
529
|
-
case 32: goto
|
521
|
+
case 32: goto tr33;
|
530
522
|
case 35: goto st0;
|
531
523
|
case 37: goto st22;
|
532
524
|
case 127: goto st0;
|
@@ -534,7 +526,7 @@ case 21:
|
|
534
526
|
if ( 0 <= (*p) && (*p) <= 31 )
|
535
527
|
goto st0;
|
536
528
|
goto st21;
|
537
|
-
|
529
|
+
tr31:
|
538
530
|
#line 22 "parser.rl"
|
539
531
|
{MARK(mark, p); }
|
540
532
|
goto st22;
|
@@ -542,7 +534,7 @@ st22:
|
|
542
534
|
if ( ++p == pe )
|
543
535
|
goto _test_eof22;
|
544
536
|
case 22:
|
545
|
-
#line
|
537
|
+
#line 538 "parser.c"
|
546
538
|
if ( (*p) == 117 )
|
547
539
|
goto st24;
|
548
540
|
if ( (*p) < 65 ) {
|
@@ -588,55 +580,44 @@ st25:
|
|
588
580
|
if ( ++p == pe )
|
589
581
|
goto _test_eof25;
|
590
582
|
case 25:
|
591
|
-
#line
|
583
|
+
#line 584 "parser.c"
|
592
584
|
switch( (*p) ) {
|
593
|
-
case
|
594
|
-
case
|
585
|
+
case 32: goto tr38;
|
586
|
+
case 35: goto tr39;
|
587
|
+
case 37: goto st26;
|
588
|
+
case 63: goto tr41;
|
589
|
+
case 127: goto st0;
|
595
590
|
}
|
596
|
-
if ( (*p)
|
597
|
-
|
598
|
-
|
599
|
-
} else if ( (*p) > 57 ) {
|
600
|
-
if ( (*p) > 90 ) {
|
601
|
-
if ( 97 <= (*p) && (*p) <= 122 )
|
602
|
-
goto st25;
|
603
|
-
} else if ( (*p) >= 65 )
|
604
|
-
goto st25;
|
605
|
-
} else
|
606
|
-
goto st25;
|
607
|
-
goto st0;
|
608
|
-
tr7:
|
609
|
-
#line 22 "parser.rl"
|
610
|
-
{MARK(mark, p); }
|
611
|
-
goto st26;
|
591
|
+
if ( 0 <= (*p) && (*p) <= 31 )
|
592
|
+
goto st0;
|
593
|
+
goto st25;
|
612
594
|
st26:
|
613
595
|
if ( ++p == pe )
|
614
596
|
goto _test_eof26;
|
615
597
|
case 26:
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
598
|
+
if ( (*p) == 117 )
|
599
|
+
goto st28;
|
600
|
+
if ( (*p) < 65 ) {
|
601
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
602
|
+
goto st27;
|
603
|
+
} else if ( (*p) > 70 ) {
|
604
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
605
|
+
goto st27;
|
606
|
+
} else
|
607
|
+
goto st27;
|
608
|
+
goto st0;
|
626
609
|
st27:
|
627
610
|
if ( ++p == pe )
|
628
611
|
goto _test_eof27;
|
629
612
|
case 27:
|
630
|
-
if ( (*p) == 117 )
|
631
|
-
goto st29;
|
632
613
|
if ( (*p) < 65 ) {
|
633
614
|
if ( 48 <= (*p) && (*p) <= 57 )
|
634
|
-
goto
|
615
|
+
goto st25;
|
635
616
|
} else if ( (*p) > 70 ) {
|
636
617
|
if ( 97 <= (*p) && (*p) <= 102 )
|
637
|
-
goto
|
618
|
+
goto st25;
|
638
619
|
} else
|
639
|
-
goto
|
620
|
+
goto st25;
|
640
621
|
goto st0;
|
641
622
|
st28:
|
642
623
|
if ( ++p == pe )
|
@@ -644,49 +625,62 @@ st28:
|
|
644
625
|
case 28:
|
645
626
|
if ( (*p) < 65 ) {
|
646
627
|
if ( 48 <= (*p) && (*p) <= 57 )
|
647
|
-
goto
|
628
|
+
goto st27;
|
648
629
|
} else if ( (*p) > 70 ) {
|
649
630
|
if ( 97 <= (*p) && (*p) <= 102 )
|
650
|
-
goto
|
631
|
+
goto st27;
|
651
632
|
} else
|
652
|
-
goto
|
633
|
+
goto st27;
|
653
634
|
goto st0;
|
635
|
+
tr41:
|
636
|
+
#line 65 "parser.rl"
|
637
|
+
{
|
638
|
+
if (parser->request_path != NULL) {
|
639
|
+
parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
|
640
|
+
}
|
641
|
+
}
|
642
|
+
goto st29;
|
654
643
|
st29:
|
655
644
|
if ( ++p == pe )
|
656
645
|
goto _test_eof29;
|
657
646
|
case 29:
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
}
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
647
|
+
#line 648 "parser.c"
|
648
|
+
switch( (*p) ) {
|
649
|
+
case 32: goto tr45;
|
650
|
+
case 35: goto tr46;
|
651
|
+
case 37: goto tr47;
|
652
|
+
case 127: goto st0;
|
653
|
+
}
|
654
|
+
if ( 0 <= (*p) && (*p) <= 31 )
|
655
|
+
goto st0;
|
656
|
+
goto tr44;
|
657
|
+
tr44:
|
658
|
+
#line 52 "parser.rl"
|
659
|
+
{MARK(query_start, p); }
|
670
660
|
goto st30;
|
671
661
|
st30:
|
672
662
|
if ( ++p == pe )
|
673
663
|
goto _test_eof30;
|
674
664
|
case 30:
|
675
|
-
#line
|
665
|
+
#line 666 "parser.c"
|
676
666
|
switch( (*p) ) {
|
677
|
-
case 32: goto
|
678
|
-
case 35: goto
|
667
|
+
case 32: goto tr49;
|
668
|
+
case 35: goto tr50;
|
679
669
|
case 37: goto st31;
|
680
|
-
case 63: goto tr47;
|
681
670
|
case 127: goto st0;
|
682
671
|
}
|
683
672
|
if ( 0 <= (*p) && (*p) <= 31 )
|
684
673
|
goto st0;
|
685
674
|
goto st30;
|
675
|
+
tr47:
|
676
|
+
#line 52 "parser.rl"
|
677
|
+
{MARK(query_start, p); }
|
678
|
+
goto st31;
|
686
679
|
st31:
|
687
680
|
if ( ++p == pe )
|
688
681
|
goto _test_eof31;
|
689
682
|
case 31:
|
683
|
+
#line 684 "parser.c"
|
690
684
|
if ( (*p) == 117 )
|
691
685
|
goto st33;
|
692
686
|
if ( (*p) < 65 ) {
|
@@ -724,108 +718,55 @@ case 33:
|
|
724
718
|
} else
|
725
719
|
goto st32;
|
726
720
|
goto st0;
|
727
|
-
tr47:
|
728
|
-
#line 65 "parser.rl"
|
729
|
-
{
|
730
|
-
if (parser->request_path != NULL) {
|
731
|
-
parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
|
732
|
-
}
|
733
|
-
}
|
734
|
-
goto st34;
|
735
721
|
st34:
|
736
722
|
if ( ++p == pe )
|
737
723
|
goto _test_eof34;
|
738
724
|
case 34:
|
739
|
-
#line 740 "parser.c"
|
740
725
|
switch( (*p) ) {
|
741
|
-
case
|
742
|
-
case
|
743
|
-
case 37: goto tr53;
|
744
|
-
case 127: goto st0;
|
726
|
+
case 84: goto st35;
|
727
|
+
case 116: goto st35;
|
745
728
|
}
|
746
|
-
|
747
|
-
goto st0;
|
748
|
-
goto tr50;
|
749
|
-
tr50:
|
750
|
-
#line 52 "parser.rl"
|
751
|
-
{MARK(query_start, p); }
|
752
|
-
goto st35;
|
729
|
+
goto st0;
|
753
730
|
st35:
|
754
731
|
if ( ++p == pe )
|
755
732
|
goto _test_eof35;
|
756
733
|
case 35:
|
757
|
-
#line 758 "parser.c"
|
758
734
|
switch( (*p) ) {
|
759
|
-
case
|
760
|
-
case
|
761
|
-
case 37: goto st36;
|
762
|
-
case 127: goto st0;
|
735
|
+
case 84: goto st36;
|
736
|
+
case 116: goto st36;
|
763
737
|
}
|
764
|
-
|
765
|
-
goto st0;
|
766
|
-
goto st35;
|
767
|
-
tr53:
|
768
|
-
#line 52 "parser.rl"
|
769
|
-
{MARK(query_start, p); }
|
770
|
-
goto st36;
|
738
|
+
goto st0;
|
771
739
|
st36:
|
772
740
|
if ( ++p == pe )
|
773
741
|
goto _test_eof36;
|
774
742
|
case 36:
|
775
|
-
|
776
|
-
|
777
|
-
goto
|
778
|
-
|
779
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
780
|
-
goto st37;
|
781
|
-
} else if ( (*p) > 70 ) {
|
782
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
783
|
-
goto st37;
|
784
|
-
} else
|
785
|
-
goto st37;
|
743
|
+
switch( (*p) ) {
|
744
|
+
case 80: goto st37;
|
745
|
+
case 112: goto st37;
|
746
|
+
}
|
786
747
|
goto st0;
|
787
748
|
st37:
|
788
749
|
if ( ++p == pe )
|
789
750
|
goto _test_eof37;
|
790
751
|
case 37:
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
goto st35;
|
797
|
-
} else
|
798
|
-
goto st35;
|
752
|
+
switch( (*p) ) {
|
753
|
+
case 58: goto st38;
|
754
|
+
case 83: goto st50;
|
755
|
+
case 115: goto st50;
|
756
|
+
}
|
799
757
|
goto st0;
|
800
758
|
st38:
|
801
759
|
if ( ++p == pe )
|
802
760
|
goto _test_eof38;
|
803
761
|
case 38:
|
804
|
-
if ( (*p)
|
805
|
-
|
806
|
-
goto st37;
|
807
|
-
} else if ( (*p) > 70 ) {
|
808
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
809
|
-
goto st37;
|
810
|
-
} else
|
811
|
-
goto st37;
|
762
|
+
if ( (*p) == 47 )
|
763
|
+
goto st39;
|
812
764
|
goto st0;
|
813
765
|
st39:
|
814
766
|
if ( ++p == pe )
|
815
767
|
goto _test_eof39;
|
816
768
|
case 39:
|
817
|
-
|
818
|
-
case 32: goto tr2;
|
819
|
-
case 36: goto st40;
|
820
|
-
case 95: goto st40;
|
821
|
-
}
|
822
|
-
if ( (*p) < 48 ) {
|
823
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
824
|
-
goto st40;
|
825
|
-
} else if ( (*p) > 57 ) {
|
826
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
827
|
-
goto st40;
|
828
|
-
} else
|
769
|
+
if ( (*p) == 47 )
|
829
770
|
goto st40;
|
830
771
|
goto st0;
|
831
772
|
st40:
|
@@ -833,51 +774,62 @@ st40:
|
|
833
774
|
goto _test_eof40;
|
834
775
|
case 40:
|
835
776
|
switch( (*p) ) {
|
836
|
-
case
|
837
|
-
case
|
838
|
-
case
|
777
|
+
case 37: goto st42;
|
778
|
+
case 47: goto st0;
|
779
|
+
case 60: goto st0;
|
780
|
+
case 91: goto st47;
|
781
|
+
case 95: goto st45;
|
782
|
+
case 127: goto st0;
|
839
783
|
}
|
840
|
-
if ( (*p) <
|
841
|
-
if (
|
842
|
-
|
784
|
+
if ( (*p) < 45 ) {
|
785
|
+
if ( (*p) > 32 ) {
|
786
|
+
if ( 34 <= (*p) && (*p) <= 35 )
|
787
|
+
goto st0;
|
788
|
+
} else if ( (*p) >= 0 )
|
789
|
+
goto st0;
|
843
790
|
} else if ( (*p) > 57 ) {
|
844
|
-
if (
|
845
|
-
|
791
|
+
if ( (*p) < 65 ) {
|
792
|
+
if ( 62 <= (*p) && (*p) <= 64 )
|
793
|
+
goto st0;
|
794
|
+
} else if ( (*p) > 90 ) {
|
795
|
+
if ( 97 <= (*p) && (*p) <= 122 )
|
796
|
+
goto st45;
|
797
|
+
} else
|
798
|
+
goto st45;
|
846
799
|
} else
|
847
|
-
goto
|
848
|
-
goto
|
800
|
+
goto st45;
|
801
|
+
goto st41;
|
849
802
|
st41:
|
850
803
|
if ( ++p == pe )
|
851
804
|
goto _test_eof41;
|
852
805
|
case 41:
|
853
806
|
switch( (*p) ) {
|
854
|
-
case
|
855
|
-
case
|
856
|
-
case
|
807
|
+
case 37: goto st42;
|
808
|
+
case 47: goto st0;
|
809
|
+
case 60: goto st0;
|
810
|
+
case 64: goto st40;
|
811
|
+
case 127: goto st0;
|
857
812
|
}
|
858
|
-
if ( (*p) <
|
859
|
-
if (
|
860
|
-
goto
|
861
|
-
} else if ( (*p) >
|
862
|
-
if (
|
863
|
-
goto
|
813
|
+
if ( (*p) < 34 ) {
|
814
|
+
if ( 0 <= (*p) && (*p) <= 32 )
|
815
|
+
goto st0;
|
816
|
+
} else if ( (*p) > 35 ) {
|
817
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
818
|
+
goto st0;
|
864
819
|
} else
|
865
|
-
goto
|
866
|
-
goto
|
820
|
+
goto st0;
|
821
|
+
goto st41;
|
867
822
|
st42:
|
868
823
|
if ( ++p == pe )
|
869
824
|
goto _test_eof42;
|
870
825
|
case 42:
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
}
|
876
|
-
if ( (*p) < 48 ) {
|
877
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
826
|
+
if ( (*p) == 117 )
|
827
|
+
goto st44;
|
828
|
+
if ( (*p) < 65 ) {
|
829
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
878
830
|
goto st43;
|
879
|
-
} else if ( (*p) >
|
880
|
-
if (
|
831
|
+
} else if ( (*p) > 70 ) {
|
832
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
881
833
|
goto st43;
|
882
834
|
} else
|
883
835
|
goto st43;
|
@@ -886,145 +838,168 @@ st43:
|
|
886
838
|
if ( ++p == pe )
|
887
839
|
goto _test_eof43;
|
888
840
|
case 43:
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
896
|
-
goto st44;
|
897
|
-
} else if ( (*p) > 57 ) {
|
898
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
899
|
-
goto st44;
|
841
|
+
if ( (*p) < 65 ) {
|
842
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
843
|
+
goto st41;
|
844
|
+
} else if ( (*p) > 70 ) {
|
845
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
846
|
+
goto st41;
|
900
847
|
} else
|
901
|
-
goto
|
848
|
+
goto st41;
|
902
849
|
goto st0;
|
903
850
|
st44:
|
904
851
|
if ( ++p == pe )
|
905
852
|
goto _test_eof44;
|
906
853
|
case 44:
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
914
|
-
goto st45;
|
915
|
-
} else if ( (*p) > 57 ) {
|
916
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
917
|
-
goto st45;
|
854
|
+
if ( (*p) < 65 ) {
|
855
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
856
|
+
goto st43;
|
857
|
+
} else if ( (*p) > 70 ) {
|
858
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
859
|
+
goto st43;
|
918
860
|
} else
|
919
|
-
goto
|
861
|
+
goto st43;
|
920
862
|
goto st0;
|
921
863
|
st45:
|
922
864
|
if ( ++p == pe )
|
923
865
|
goto _test_eof45;
|
924
866
|
case 45:
|
925
867
|
switch( (*p) ) {
|
926
|
-
case
|
927
|
-
case
|
928
|
-
case
|
868
|
+
case 37: goto st42;
|
869
|
+
case 47: goto tr5;
|
870
|
+
case 58: goto st46;
|
871
|
+
case 60: goto st0;
|
872
|
+
case 64: goto st40;
|
873
|
+
case 95: goto st45;
|
874
|
+
case 127: goto st0;
|
929
875
|
}
|
930
|
-
if ( (*p) <
|
931
|
-
if (
|
932
|
-
|
876
|
+
if ( (*p) < 45 ) {
|
877
|
+
if ( (*p) > 32 ) {
|
878
|
+
if ( 34 <= (*p) && (*p) <= 35 )
|
879
|
+
goto st0;
|
880
|
+
} else if ( (*p) >= 0 )
|
881
|
+
goto st0;
|
933
882
|
} else if ( (*p) > 57 ) {
|
934
|
-
if (
|
935
|
-
|
883
|
+
if ( (*p) < 65 ) {
|
884
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
885
|
+
goto st0;
|
886
|
+
} else if ( (*p) > 90 ) {
|
887
|
+
if ( 97 <= (*p) && (*p) <= 122 )
|
888
|
+
goto st45;
|
889
|
+
} else
|
890
|
+
goto st45;
|
936
891
|
} else
|
937
|
-
goto
|
938
|
-
goto
|
892
|
+
goto st45;
|
893
|
+
goto st41;
|
939
894
|
st46:
|
940
895
|
if ( ++p == pe )
|
941
896
|
goto _test_eof46;
|
942
897
|
case 46:
|
943
898
|
switch( (*p) ) {
|
944
|
-
case
|
945
|
-
case
|
946
|
-
case
|
899
|
+
case 37: goto st42;
|
900
|
+
case 47: goto tr5;
|
901
|
+
case 60: goto st0;
|
902
|
+
case 64: goto st40;
|
903
|
+
case 127: goto st0;
|
947
904
|
}
|
948
|
-
if ( (*p) <
|
949
|
-
if (
|
950
|
-
goto
|
951
|
-
} else if ( (*p) >
|
952
|
-
if (
|
953
|
-
|
905
|
+
if ( (*p) < 34 ) {
|
906
|
+
if ( 0 <= (*p) && (*p) <= 32 )
|
907
|
+
goto st0;
|
908
|
+
} else if ( (*p) > 35 ) {
|
909
|
+
if ( (*p) > 57 ) {
|
910
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
911
|
+
goto st0;
|
912
|
+
} else if ( (*p) >= 48 )
|
913
|
+
goto st46;
|
954
914
|
} else
|
955
|
-
goto
|
956
|
-
goto
|
915
|
+
goto st0;
|
916
|
+
goto st41;
|
957
917
|
st47:
|
958
918
|
if ( ++p == pe )
|
959
919
|
goto _test_eof47;
|
960
920
|
case 47:
|
961
921
|
switch( (*p) ) {
|
962
|
-
case
|
963
|
-
case
|
964
|
-
case
|
922
|
+
case 37: goto st42;
|
923
|
+
case 47: goto st0;
|
924
|
+
case 60: goto st0;
|
925
|
+
case 64: goto st40;
|
926
|
+
case 127: goto st0;
|
965
927
|
}
|
966
928
|
if ( (*p) < 48 ) {
|
967
|
-
if (
|
968
|
-
|
969
|
-
|
970
|
-
|
929
|
+
if ( (*p) > 32 ) {
|
930
|
+
if ( 34 <= (*p) && (*p) <= 35 )
|
931
|
+
goto st0;
|
932
|
+
} else if ( (*p) >= 0 )
|
933
|
+
goto st0;
|
934
|
+
} else if ( (*p) > 58 ) {
|
935
|
+
if ( (*p) < 65 ) {
|
936
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
937
|
+
goto st0;
|
938
|
+
} else if ( (*p) > 70 ) {
|
939
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
940
|
+
goto st48;
|
941
|
+
} else
|
971
942
|
goto st48;
|
972
943
|
} else
|
973
944
|
goto st48;
|
974
|
-
goto
|
945
|
+
goto st41;
|
975
946
|
st48:
|
976
947
|
if ( ++p == pe )
|
977
948
|
goto _test_eof48;
|
978
949
|
case 48:
|
979
950
|
switch( (*p) ) {
|
980
|
-
case
|
981
|
-
case
|
982
|
-
case
|
951
|
+
case 37: goto st42;
|
952
|
+
case 47: goto st0;
|
953
|
+
case 60: goto st0;
|
954
|
+
case 64: goto st40;
|
955
|
+
case 93: goto st49;
|
956
|
+
case 127: goto st0;
|
983
957
|
}
|
984
958
|
if ( (*p) < 48 ) {
|
985
|
-
if (
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
goto
|
959
|
+
if ( (*p) > 32 ) {
|
960
|
+
if ( 34 <= (*p) && (*p) <= 35 )
|
961
|
+
goto st0;
|
962
|
+
} else if ( (*p) >= 0 )
|
963
|
+
goto st0;
|
964
|
+
} else if ( (*p) > 58 ) {
|
965
|
+
if ( (*p) < 65 ) {
|
966
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
967
|
+
goto st0;
|
968
|
+
} else if ( (*p) > 70 ) {
|
969
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
970
|
+
goto st48;
|
971
|
+
} else
|
972
|
+
goto st48;
|
990
973
|
} else
|
991
|
-
goto
|
992
|
-
goto
|
974
|
+
goto st48;
|
975
|
+
goto st41;
|
993
976
|
st49:
|
994
977
|
if ( ++p == pe )
|
995
978
|
goto _test_eof49;
|
996
979
|
case 49:
|
997
980
|
switch( (*p) ) {
|
998
|
-
case
|
999
|
-
case
|
1000
|
-
case
|
981
|
+
case 37: goto st42;
|
982
|
+
case 47: goto tr5;
|
983
|
+
case 58: goto st46;
|
984
|
+
case 60: goto st0;
|
985
|
+
case 64: goto st40;
|
986
|
+
case 127: goto st0;
|
1001
987
|
}
|
1002
|
-
if ( (*p) <
|
1003
|
-
if (
|
1004
|
-
goto
|
1005
|
-
} else if ( (*p) >
|
1006
|
-
if (
|
1007
|
-
goto
|
988
|
+
if ( (*p) < 34 ) {
|
989
|
+
if ( 0 <= (*p) && (*p) <= 32 )
|
990
|
+
goto st0;
|
991
|
+
} else if ( (*p) > 35 ) {
|
992
|
+
if ( 62 <= (*p) && (*p) <= 63 )
|
993
|
+
goto st0;
|
1008
994
|
} else
|
1009
|
-
goto
|
1010
|
-
goto
|
995
|
+
goto st0;
|
996
|
+
goto st41;
|
1011
997
|
st50:
|
1012
998
|
if ( ++p == pe )
|
1013
999
|
goto _test_eof50;
|
1014
1000
|
case 50:
|
1015
|
-
|
1016
|
-
|
1017
|
-
case 36: goto st51;
|
1018
|
-
case 95: goto st51;
|
1019
|
-
}
|
1020
|
-
if ( (*p) < 48 ) {
|
1021
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
1022
|
-
goto st51;
|
1023
|
-
} else if ( (*p) > 57 ) {
|
1024
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
1025
|
-
goto st51;
|
1026
|
-
} else
|
1027
|
-
goto st51;
|
1001
|
+
if ( (*p) == 58 )
|
1002
|
+
goto st38;
|
1028
1003
|
goto st0;
|
1029
1004
|
st51:
|
1030
1005
|
if ( ++p == pe )
|
@@ -1138,6 +1113,222 @@ st57:
|
|
1138
1113
|
if ( ++p == pe )
|
1139
1114
|
goto _test_eof57;
|
1140
1115
|
case 57:
|
1116
|
+
switch( (*p) ) {
|
1117
|
+
case 32: goto tr2;
|
1118
|
+
case 36: goto st58;
|
1119
|
+
case 95: goto st58;
|
1120
|
+
}
|
1121
|
+
if ( (*p) < 48 ) {
|
1122
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1123
|
+
goto st58;
|
1124
|
+
} else if ( (*p) > 57 ) {
|
1125
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1126
|
+
goto st58;
|
1127
|
+
} else
|
1128
|
+
goto st58;
|
1129
|
+
goto st0;
|
1130
|
+
st58:
|
1131
|
+
if ( ++p == pe )
|
1132
|
+
goto _test_eof58;
|
1133
|
+
case 58:
|
1134
|
+
switch( (*p) ) {
|
1135
|
+
case 32: goto tr2;
|
1136
|
+
case 36: goto st59;
|
1137
|
+
case 95: goto st59;
|
1138
|
+
}
|
1139
|
+
if ( (*p) < 48 ) {
|
1140
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1141
|
+
goto st59;
|
1142
|
+
} else if ( (*p) > 57 ) {
|
1143
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1144
|
+
goto st59;
|
1145
|
+
} else
|
1146
|
+
goto st59;
|
1147
|
+
goto st0;
|
1148
|
+
st59:
|
1149
|
+
if ( ++p == pe )
|
1150
|
+
goto _test_eof59;
|
1151
|
+
case 59:
|
1152
|
+
switch( (*p) ) {
|
1153
|
+
case 32: goto tr2;
|
1154
|
+
case 36: goto st60;
|
1155
|
+
case 95: goto st60;
|
1156
|
+
}
|
1157
|
+
if ( (*p) < 48 ) {
|
1158
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1159
|
+
goto st60;
|
1160
|
+
} else if ( (*p) > 57 ) {
|
1161
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1162
|
+
goto st60;
|
1163
|
+
} else
|
1164
|
+
goto st60;
|
1165
|
+
goto st0;
|
1166
|
+
st60:
|
1167
|
+
if ( ++p == pe )
|
1168
|
+
goto _test_eof60;
|
1169
|
+
case 60:
|
1170
|
+
switch( (*p) ) {
|
1171
|
+
case 32: goto tr2;
|
1172
|
+
case 36: goto st61;
|
1173
|
+
case 95: goto st61;
|
1174
|
+
}
|
1175
|
+
if ( (*p) < 48 ) {
|
1176
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1177
|
+
goto st61;
|
1178
|
+
} else if ( (*p) > 57 ) {
|
1179
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1180
|
+
goto st61;
|
1181
|
+
} else
|
1182
|
+
goto st61;
|
1183
|
+
goto st0;
|
1184
|
+
st61:
|
1185
|
+
if ( ++p == pe )
|
1186
|
+
goto _test_eof61;
|
1187
|
+
case 61:
|
1188
|
+
switch( (*p) ) {
|
1189
|
+
case 32: goto tr2;
|
1190
|
+
case 36: goto st62;
|
1191
|
+
case 95: goto st62;
|
1192
|
+
}
|
1193
|
+
if ( (*p) < 48 ) {
|
1194
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1195
|
+
goto st62;
|
1196
|
+
} else if ( (*p) > 57 ) {
|
1197
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1198
|
+
goto st62;
|
1199
|
+
} else
|
1200
|
+
goto st62;
|
1201
|
+
goto st0;
|
1202
|
+
st62:
|
1203
|
+
if ( ++p == pe )
|
1204
|
+
goto _test_eof62;
|
1205
|
+
case 62:
|
1206
|
+
switch( (*p) ) {
|
1207
|
+
case 32: goto tr2;
|
1208
|
+
case 36: goto st63;
|
1209
|
+
case 95: goto st63;
|
1210
|
+
}
|
1211
|
+
if ( (*p) < 48 ) {
|
1212
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1213
|
+
goto st63;
|
1214
|
+
} else if ( (*p) > 57 ) {
|
1215
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1216
|
+
goto st63;
|
1217
|
+
} else
|
1218
|
+
goto st63;
|
1219
|
+
goto st0;
|
1220
|
+
st63:
|
1221
|
+
if ( ++p == pe )
|
1222
|
+
goto _test_eof63;
|
1223
|
+
case 63:
|
1224
|
+
switch( (*p) ) {
|
1225
|
+
case 32: goto tr2;
|
1226
|
+
case 36: goto st64;
|
1227
|
+
case 95: goto st64;
|
1228
|
+
}
|
1229
|
+
if ( (*p) < 48 ) {
|
1230
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1231
|
+
goto st64;
|
1232
|
+
} else if ( (*p) > 57 ) {
|
1233
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1234
|
+
goto st64;
|
1235
|
+
} else
|
1236
|
+
goto st64;
|
1237
|
+
goto st0;
|
1238
|
+
st64:
|
1239
|
+
if ( ++p == pe )
|
1240
|
+
goto _test_eof64;
|
1241
|
+
case 64:
|
1242
|
+
switch( (*p) ) {
|
1243
|
+
case 32: goto tr2;
|
1244
|
+
case 36: goto st65;
|
1245
|
+
case 95: goto st65;
|
1246
|
+
}
|
1247
|
+
if ( (*p) < 48 ) {
|
1248
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1249
|
+
goto st65;
|
1250
|
+
} else if ( (*p) > 57 ) {
|
1251
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1252
|
+
goto st65;
|
1253
|
+
} else
|
1254
|
+
goto st65;
|
1255
|
+
goto st0;
|
1256
|
+
st65:
|
1257
|
+
if ( ++p == pe )
|
1258
|
+
goto _test_eof65;
|
1259
|
+
case 65:
|
1260
|
+
switch( (*p) ) {
|
1261
|
+
case 32: goto tr2;
|
1262
|
+
case 36: goto st66;
|
1263
|
+
case 95: goto st66;
|
1264
|
+
}
|
1265
|
+
if ( (*p) < 48 ) {
|
1266
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1267
|
+
goto st66;
|
1268
|
+
} else if ( (*p) > 57 ) {
|
1269
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1270
|
+
goto st66;
|
1271
|
+
} else
|
1272
|
+
goto st66;
|
1273
|
+
goto st0;
|
1274
|
+
st66:
|
1275
|
+
if ( ++p == pe )
|
1276
|
+
goto _test_eof66;
|
1277
|
+
case 66:
|
1278
|
+
switch( (*p) ) {
|
1279
|
+
case 32: goto tr2;
|
1280
|
+
case 36: goto st67;
|
1281
|
+
case 95: goto st67;
|
1282
|
+
}
|
1283
|
+
if ( (*p) < 48 ) {
|
1284
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1285
|
+
goto st67;
|
1286
|
+
} else if ( (*p) > 57 ) {
|
1287
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1288
|
+
goto st67;
|
1289
|
+
} else
|
1290
|
+
goto st67;
|
1291
|
+
goto st0;
|
1292
|
+
st67:
|
1293
|
+
if ( ++p == pe )
|
1294
|
+
goto _test_eof67;
|
1295
|
+
case 67:
|
1296
|
+
switch( (*p) ) {
|
1297
|
+
case 32: goto tr2;
|
1298
|
+
case 36: goto st68;
|
1299
|
+
case 95: goto st68;
|
1300
|
+
}
|
1301
|
+
if ( (*p) < 48 ) {
|
1302
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1303
|
+
goto st68;
|
1304
|
+
} else if ( (*p) > 57 ) {
|
1305
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1306
|
+
goto st68;
|
1307
|
+
} else
|
1308
|
+
goto st68;
|
1309
|
+
goto st0;
|
1310
|
+
st68:
|
1311
|
+
if ( ++p == pe )
|
1312
|
+
goto _test_eof68;
|
1313
|
+
case 68:
|
1314
|
+
switch( (*p) ) {
|
1315
|
+
case 32: goto tr2;
|
1316
|
+
case 36: goto st69;
|
1317
|
+
case 95: goto st69;
|
1318
|
+
}
|
1319
|
+
if ( (*p) < 48 ) {
|
1320
|
+
if ( 45 <= (*p) && (*p) <= 46 )
|
1321
|
+
goto st69;
|
1322
|
+
} else if ( (*p) > 57 ) {
|
1323
|
+
if ( 65 <= (*p) && (*p) <= 90 )
|
1324
|
+
goto st69;
|
1325
|
+
} else
|
1326
|
+
goto st69;
|
1327
|
+
goto st0;
|
1328
|
+
st69:
|
1329
|
+
if ( ++p == pe )
|
1330
|
+
goto _test_eof69;
|
1331
|
+
case 69:
|
1141
1332
|
if ( (*p) == 32 )
|
1142
1333
|
goto tr2;
|
1143
1334
|
goto st0;
|
@@ -1157,7 +1348,7 @@ case 57:
|
|
1157
1348
|
_test_eof14: cs = 14; goto _test_eof;
|
1158
1349
|
_test_eof15: cs = 15; goto _test_eof;
|
1159
1350
|
_test_eof16: cs = 16; goto _test_eof;
|
1160
|
-
|
1351
|
+
_test_eof70: cs = 70; goto _test_eof;
|
1161
1352
|
_test_eof17: cs = 17; goto _test_eof;
|
1162
1353
|
_test_eof18: cs = 18; goto _test_eof;
|
1163
1354
|
_test_eof19: cs = 19; goto _test_eof;
|
@@ -1199,6 +1390,18 @@ case 57:
|
|
1199
1390
|
_test_eof55: cs = 55; goto _test_eof;
|
1200
1391
|
_test_eof56: cs = 56; goto _test_eof;
|
1201
1392
|
_test_eof57: cs = 57; goto _test_eof;
|
1393
|
+
_test_eof58: cs = 58; goto _test_eof;
|
1394
|
+
_test_eof59: cs = 59; goto _test_eof;
|
1395
|
+
_test_eof60: cs = 60; goto _test_eof;
|
1396
|
+
_test_eof61: cs = 61; goto _test_eof;
|
1397
|
+
_test_eof62: cs = 62; goto _test_eof;
|
1398
|
+
_test_eof63: cs = 63; goto _test_eof;
|
1399
|
+
_test_eof64: cs = 64; goto _test_eof;
|
1400
|
+
_test_eof65: cs = 65; goto _test_eof;
|
1401
|
+
_test_eof66: cs = 66; goto _test_eof;
|
1402
|
+
_test_eof67: cs = 67; goto _test_eof;
|
1403
|
+
_test_eof68: cs = 68; goto _test_eof;
|
1404
|
+
_test_eof69: cs = 69; goto _test_eof;
|
1202
1405
|
|
1203
1406
|
_test_eof: {}
|
1204
1407
|
_out: {}
|
@@ -1224,6 +1427,14 @@ case 57:
|
|
1224
1427
|
return(parser->nread);
|
1225
1428
|
}
|
1226
1429
|
|
1430
|
+
int thin_http_parser_has_error(http_parser *parser) {
|
1431
|
+
return parser->cs == http_parser_error;
|
1432
|
+
}
|
1433
|
+
|
1434
|
+
int thin_http_parser_is_finished(http_parser *parser) {
|
1435
|
+
return parser->cs == http_parser_first_final;
|
1436
|
+
}
|
1437
|
+
|
1227
1438
|
int thin_http_parser_finish(http_parser *parser)
|
1228
1439
|
{
|
1229
1440
|
int cs = parser->cs;
|
@@ -1239,11 +1450,3 @@ int thin_http_parser_finish(http_parser *parser)
|
|
1239
1450
|
return 0;
|
1240
1451
|
}
|
1241
1452
|
}
|
1242
|
-
|
1243
|
-
int thin_http_parser_has_error(http_parser *parser) {
|
1244
|
-
return parser->cs == http_parser_error;
|
1245
|
-
}
|
1246
|
-
|
1247
|
-
int thin_http_parser_is_finished(http_parser *parser) {
|
1248
|
-
return parser->cs == http_parser_first_final;
|
1249
|
-
}
|