unicorn 5.7.0 → 6.1.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 +4 -4
- data/.manifest +3 -2
- data/.olddoc.yml +7 -4
- data/CONTRIBUTORS +6 -2
- data/GIT-VERSION-FILE +1 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +4 -3
- data/HACKING +1 -8
- data/ISSUES +18 -20
- data/LATEST +23 -22
- data/NEWS +132 -0
- data/README +5 -6
- data/Sandbox +1 -1
- data/ext/unicorn_http/c_util.h +5 -13
- data/ext/unicorn_http/common_field_optimization.h +0 -1
- data/ext/unicorn_http/epollexclusive.h +124 -0
- data/ext/unicorn_http/ext_help.h +0 -24
- data/ext/unicorn_http/extconf.rb +2 -11
- data/ext/unicorn_http/global_variables.h +1 -1
- data/ext/unicorn_http/httpdate.c +1 -0
- data/ext/unicorn_http/unicorn_http.c +215 -223
- data/ext/unicorn_http/unicorn_http.rl +5 -13
- data/lib/unicorn/http_request.rb +0 -1
- data/lib/unicorn/http_server.rb +26 -27
- data/lib/unicorn/oob_gc.rb +3 -3
- data/lib/unicorn/select_waiter.rb +6 -0
- data/lib/unicorn/version.rb +1 -1
- data/lib/unicorn.rb +0 -2
- data/t/README +1 -1
- data/t/test-lib.sh +2 -1
- data/test/exec/test_exec.rb +5 -5
- data/test/test_helper.rb +18 -2
- data/test/unit/test_ccc.rb +4 -3
- data/test/unit/test_server.rb +52 -8
- data/test/unit/test_signals.rb +6 -6
- data/test/unit/test_socket_helper.rb +1 -1
- data/test/unit/test_upload.rb +5 -5
- data/test/unit/test_util.rb +4 -3
- data/test/unit/test_waiter.rb +34 -0
- data/unicorn.gemspec +3 -3
- metadata +7 -5
- data/t/hijack.ru +0 -55
- data/t/t0200-rack-hijack.sh +0 -51
@@ -14,6 +14,7 @@
|
|
14
14
|
#include "common_field_optimization.h"
|
15
15
|
#include "global_variables.h"
|
16
16
|
#include "c_util.h"
|
17
|
+
#include "epollexclusive.h"
|
17
18
|
|
18
19
|
void init_unicorn_httpdate(void);
|
19
20
|
|
@@ -67,18 +68,6 @@ struct http_parser {
|
|
67
68
|
static ID id_set_backtrace, id_is_chunked_p;
|
68
69
|
static VALUE cHttpParser;
|
69
70
|
|
70
|
-
#ifdef HAVE_RB_HASH_CLEAR /* Ruby >= 2.0 */
|
71
|
-
# define my_hash_clear(h) (void)rb_hash_clear(h)
|
72
|
-
#else /* !HAVE_RB_HASH_CLEAR - Ruby <= 1.9.3 */
|
73
|
-
|
74
|
-
static ID id_clear;
|
75
|
-
|
76
|
-
static void my_hash_clear(VALUE h)
|
77
|
-
{
|
78
|
-
rb_funcall(h, id_clear, 0);
|
79
|
-
}
|
80
|
-
#endif /* HAVE_RB_HASH_CLEAR */
|
81
|
-
|
82
71
|
static void finalize_header(struct http_parser *hp);
|
83
72
|
|
84
73
|
static void parser_raise(VALUE klass, const char *msg)
|
@@ -324,12 +313,12 @@ static void write_value(struct http_parser *hp,
|
|
324
313
|
/** Machine **/
|
325
314
|
|
326
315
|
|
327
|
-
#line
|
316
|
+
#line 420 "unicorn_http.rl"
|
328
317
|
|
329
318
|
|
330
319
|
/** Data **/
|
331
320
|
|
332
|
-
#line
|
321
|
+
#line 322 "unicorn_http.c"
|
333
322
|
static const int http_parser_start = 1;
|
334
323
|
static const int http_parser_first_final = 122;
|
335
324
|
static const int http_parser_error = 0;
|
@@ -340,7 +329,7 @@ static const int http_parser_en_Trailers = 114;
|
|
340
329
|
static const int http_parser_en_main = 1;
|
341
330
|
|
342
331
|
|
343
|
-
#line
|
332
|
+
#line 424 "unicorn_http.rl"
|
344
333
|
|
345
334
|
static void http_parser_init(struct http_parser *hp)
|
346
335
|
{
|
@@ -353,12 +342,12 @@ static void http_parser_init(struct http_parser *hp)
|
|
353
342
|
hp->len.content = 0;
|
354
343
|
hp->cont = Qfalse; /* zero on MRI, should be optimized away by above */
|
355
344
|
|
356
|
-
#line
|
345
|
+
#line 346 "unicorn_http.c"
|
357
346
|
{
|
358
347
|
cs = http_parser_start;
|
359
348
|
}
|
360
349
|
|
361
|
-
#line
|
350
|
+
#line 436 "unicorn_http.rl"
|
362
351
|
hp->cs = cs;
|
363
352
|
}
|
364
353
|
|
@@ -386,7 +375,7 @@ http_parser_execute(struct http_parser *hp, char *buffer, size_t len)
|
|
386
375
|
goto skip_chunk_data_hack;
|
387
376
|
}
|
388
377
|
|
389
|
-
#line
|
378
|
+
#line 379 "unicorn_http.c"
|
390
379
|
{
|
391
380
|
if ( p == pe )
|
392
381
|
goto _test_eof;
|
@@ -421,14 +410,14 @@ st0:
|
|
421
410
|
cs = 0;
|
422
411
|
goto _out;
|
423
412
|
tr0:
|
424
|
-
#line
|
413
|
+
#line 316 "unicorn_http.rl"
|
425
414
|
{MARK(mark, p); }
|
426
415
|
goto st2;
|
427
416
|
st2:
|
428
417
|
if ( ++p == pe )
|
429
418
|
goto _test_eof2;
|
430
419
|
case 2:
|
431
|
-
#line
|
420
|
+
#line 421 "unicorn_http.c"
|
432
421
|
switch( (*p) ) {
|
433
422
|
case 32: goto tr3;
|
434
423
|
case 33: goto st49;
|
@@ -454,14 +443,14 @@ case 2:
|
|
454
443
|
goto st49;
|
455
444
|
goto st0;
|
456
445
|
tr3:
|
457
|
-
#line
|
446
|
+
#line 325 "unicorn_http.rl"
|
458
447
|
{ request_method(hp, PTR_TO(mark), LEN(mark, p)); }
|
459
448
|
goto st3;
|
460
449
|
st3:
|
461
450
|
if ( ++p == pe )
|
462
451
|
goto _test_eof3;
|
463
452
|
case 3:
|
464
|
-
#line
|
453
|
+
#line 454 "unicorn_http.c"
|
465
454
|
switch( (*p) ) {
|
466
455
|
case 42: goto tr5;
|
467
456
|
case 47: goto tr6;
|
@@ -470,21 +459,21 @@ case 3:
|
|
470
459
|
}
|
471
460
|
goto st0;
|
472
461
|
tr5:
|
473
|
-
#line
|
462
|
+
#line 316 "unicorn_http.rl"
|
474
463
|
{MARK(mark, p); }
|
475
464
|
goto st4;
|
476
465
|
st4:
|
477
466
|
if ( ++p == pe )
|
478
467
|
goto _test_eof4;
|
479
468
|
case 4:
|
480
|
-
#line
|
469
|
+
#line 470 "unicorn_http.c"
|
481
470
|
switch( (*p) ) {
|
482
471
|
case 32: goto tr8;
|
483
472
|
case 35: goto tr9;
|
484
473
|
}
|
485
474
|
goto st0;
|
486
475
|
tr8:
|
487
|
-
#line
|
476
|
+
#line 330 "unicorn_http.rl"
|
488
477
|
{
|
489
478
|
VALUE str;
|
490
479
|
|
@@ -502,23 +491,23 @@ tr8:
|
|
502
491
|
}
|
503
492
|
goto st5;
|
504
493
|
tr42:
|
505
|
-
#line
|
494
|
+
#line 316 "unicorn_http.rl"
|
506
495
|
{MARK(mark, p); }
|
507
|
-
#line
|
496
|
+
#line 345 "unicorn_http.rl"
|
508
497
|
{
|
509
498
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
510
499
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
511
500
|
}
|
512
501
|
goto st5;
|
513
502
|
tr45:
|
514
|
-
#line
|
503
|
+
#line 345 "unicorn_http.rl"
|
515
504
|
{
|
516
505
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
517
506
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
518
507
|
}
|
519
508
|
goto st5;
|
520
509
|
tr49:
|
521
|
-
#line
|
510
|
+
#line 355 "unicorn_http.rl"
|
522
511
|
{
|
523
512
|
VALUE val;
|
524
513
|
|
@@ -529,7 +518,7 @@ tr49:
|
|
529
518
|
if (!STR_CSTR_EQ(val, "*"))
|
530
519
|
rb_hash_aset(hp->env, g_path_info, val);
|
531
520
|
}
|
532
|
-
#line
|
521
|
+
#line 330 "unicorn_http.rl"
|
533
522
|
{
|
534
523
|
VALUE str;
|
535
524
|
|
@@ -547,14 +536,14 @@ tr49:
|
|
547
536
|
}
|
548
537
|
goto st5;
|
549
538
|
tr55:
|
550
|
-
#line
|
539
|
+
#line 349 "unicorn_http.rl"
|
551
540
|
{MARK(start.query, p); }
|
552
|
-
#line
|
541
|
+
#line 350 "unicorn_http.rl"
|
553
542
|
{
|
554
543
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
555
544
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
556
545
|
}
|
557
|
-
#line
|
546
|
+
#line 330 "unicorn_http.rl"
|
558
547
|
{
|
559
548
|
VALUE str;
|
560
549
|
|
@@ -572,12 +561,12 @@ tr55:
|
|
572
561
|
}
|
573
562
|
goto st5;
|
574
563
|
tr59:
|
575
|
-
#line
|
564
|
+
#line 350 "unicorn_http.rl"
|
576
565
|
{
|
577
566
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
578
567
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
579
568
|
}
|
580
|
-
#line
|
569
|
+
#line 330 "unicorn_http.rl"
|
581
570
|
{
|
582
571
|
VALUE str;
|
583
572
|
|
@@ -598,19 +587,19 @@ st5:
|
|
598
587
|
if ( ++p == pe )
|
599
588
|
goto _test_eof5;
|
600
589
|
case 5:
|
601
|
-
#line
|
590
|
+
#line 591 "unicorn_http.c"
|
602
591
|
if ( (*p) == 72 )
|
603
592
|
goto tr10;
|
604
593
|
goto st0;
|
605
594
|
tr10:
|
606
|
-
#line
|
595
|
+
#line 316 "unicorn_http.rl"
|
607
596
|
{MARK(mark, p); }
|
608
597
|
goto st6;
|
609
598
|
st6:
|
610
599
|
if ( ++p == pe )
|
611
600
|
goto _test_eof6;
|
612
601
|
case 6:
|
613
|
-
#line
|
602
|
+
#line 603 "unicorn_http.c"
|
614
603
|
if ( (*p) == 84 )
|
615
604
|
goto st7;
|
616
605
|
goto st0;
|
@@ -670,34 +659,34 @@ case 13:
|
|
670
659
|
goto st13;
|
671
660
|
goto st0;
|
672
661
|
tr18:
|
673
|
-
#line
|
662
|
+
#line 354 "unicorn_http.rl"
|
674
663
|
{ http_version(hp, PTR_TO(mark), LEN(mark, p)); }
|
675
664
|
goto st14;
|
676
665
|
tr26:
|
677
|
-
#line
|
666
|
+
#line 322 "unicorn_http.rl"
|
678
667
|
{ MARK(mark, p); }
|
679
|
-
#line
|
668
|
+
#line 324 "unicorn_http.rl"
|
680
669
|
{ write_cont_value(hp, buffer, p); }
|
681
670
|
goto st14;
|
682
671
|
tr29:
|
683
|
-
#line
|
672
|
+
#line 324 "unicorn_http.rl"
|
684
673
|
{ write_cont_value(hp, buffer, p); }
|
685
674
|
goto st14;
|
686
675
|
tr36:
|
687
|
-
#line
|
676
|
+
#line 322 "unicorn_http.rl"
|
688
677
|
{ MARK(mark, p); }
|
689
|
-
#line
|
678
|
+
#line 323 "unicorn_http.rl"
|
690
679
|
{ write_value(hp, buffer, p); }
|
691
680
|
goto st14;
|
692
681
|
tr39:
|
693
|
-
#line
|
682
|
+
#line 323 "unicorn_http.rl"
|
694
683
|
{ write_value(hp, buffer, p); }
|
695
684
|
goto st14;
|
696
685
|
st14:
|
697
686
|
if ( ++p == pe )
|
698
687
|
goto _test_eof14;
|
699
688
|
case 14:
|
700
|
-
#line
|
689
|
+
#line 690 "unicorn_http.c"
|
701
690
|
switch( (*p) ) {
|
702
691
|
case 9: goto st15;
|
703
692
|
case 10: goto tr21;
|
@@ -726,14 +715,14 @@ case 14:
|
|
726
715
|
goto tr23;
|
727
716
|
goto st0;
|
728
717
|
tr25:
|
729
|
-
#line
|
718
|
+
#line 322 "unicorn_http.rl"
|
730
719
|
{ MARK(mark, p); }
|
731
720
|
goto st15;
|
732
721
|
st15:
|
733
722
|
if ( ++p == pe )
|
734
723
|
goto _test_eof15;
|
735
724
|
case 15:
|
736
|
-
#line
|
725
|
+
#line 726 "unicorn_http.c"
|
737
726
|
switch( (*p) ) {
|
738
727
|
case 9: goto tr25;
|
739
728
|
case 10: goto tr26;
|
@@ -745,14 +734,14 @@ case 15:
|
|
745
734
|
goto st0;
|
746
735
|
goto tr24;
|
747
736
|
tr24:
|
748
|
-
#line
|
737
|
+
#line 322 "unicorn_http.rl"
|
749
738
|
{ MARK(mark, p); }
|
750
739
|
goto st16;
|
751
740
|
st16:
|
752
741
|
if ( ++p == pe )
|
753
742
|
goto _test_eof16;
|
754
743
|
case 16:
|
755
|
-
#line
|
744
|
+
#line 745 "unicorn_http.c"
|
756
745
|
switch( (*p) ) {
|
757
746
|
case 10: goto tr29;
|
758
747
|
case 13: goto tr30;
|
@@ -765,39 +754,39 @@ case 16:
|
|
765
754
|
goto st0;
|
766
755
|
goto st16;
|
767
756
|
tr19:
|
768
|
-
#line
|
757
|
+
#line 354 "unicorn_http.rl"
|
769
758
|
{ http_version(hp, PTR_TO(mark), LEN(mark, p)); }
|
770
759
|
goto st17;
|
771
760
|
tr27:
|
772
|
-
#line
|
761
|
+
#line 322 "unicorn_http.rl"
|
773
762
|
{ MARK(mark, p); }
|
774
|
-
#line
|
763
|
+
#line 324 "unicorn_http.rl"
|
775
764
|
{ write_cont_value(hp, buffer, p); }
|
776
765
|
goto st17;
|
777
766
|
tr30:
|
778
|
-
#line
|
767
|
+
#line 324 "unicorn_http.rl"
|
779
768
|
{ write_cont_value(hp, buffer, p); }
|
780
769
|
goto st17;
|
781
770
|
tr37:
|
782
|
-
#line
|
771
|
+
#line 322 "unicorn_http.rl"
|
783
772
|
{ MARK(mark, p); }
|
784
|
-
#line
|
773
|
+
#line 323 "unicorn_http.rl"
|
785
774
|
{ write_value(hp, buffer, p); }
|
786
775
|
goto st17;
|
787
776
|
tr40:
|
788
|
-
#line
|
777
|
+
#line 323 "unicorn_http.rl"
|
789
778
|
{ write_value(hp, buffer, p); }
|
790
779
|
goto st17;
|
791
780
|
st17:
|
792
781
|
if ( ++p == pe )
|
793
782
|
goto _test_eof17;
|
794
783
|
case 17:
|
795
|
-
#line
|
784
|
+
#line 785 "unicorn_http.c"
|
796
785
|
if ( (*p) == 10 )
|
797
786
|
goto st14;
|
798
787
|
goto st0;
|
799
788
|
tr21:
|
800
|
-
#line
|
789
|
+
#line 370 "unicorn_http.rl"
|
801
790
|
{
|
802
791
|
finalize_header(hp);
|
803
792
|
|
@@ -818,7 +807,7 @@ tr21:
|
|
818
807
|
}
|
819
808
|
goto st122;
|
820
809
|
tr104:
|
821
|
-
#line
|
810
|
+
#line 330 "unicorn_http.rl"
|
822
811
|
{
|
823
812
|
VALUE str;
|
824
813
|
|
@@ -834,7 +823,7 @@ tr104:
|
|
834
823
|
rb_hash_aset(hp->env, g_request_path, str);
|
835
824
|
}
|
836
825
|
}
|
837
|
-
#line
|
826
|
+
#line 370 "unicorn_http.rl"
|
838
827
|
{
|
839
828
|
finalize_header(hp);
|
840
829
|
|
@@ -855,14 +844,14 @@ tr104:
|
|
855
844
|
}
|
856
845
|
goto st122;
|
857
846
|
tr108:
|
858
|
-
#line
|
847
|
+
#line 316 "unicorn_http.rl"
|
859
848
|
{MARK(mark, p); }
|
860
|
-
#line
|
849
|
+
#line 345 "unicorn_http.rl"
|
861
850
|
{
|
862
851
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
863
852
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
864
853
|
}
|
865
|
-
#line
|
854
|
+
#line 370 "unicorn_http.rl"
|
866
855
|
{
|
867
856
|
finalize_header(hp);
|
868
857
|
|
@@ -883,12 +872,12 @@ tr108:
|
|
883
872
|
}
|
884
873
|
goto st122;
|
885
874
|
tr112:
|
886
|
-
#line
|
875
|
+
#line 345 "unicorn_http.rl"
|
887
876
|
{
|
888
877
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
889
878
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
890
879
|
}
|
891
|
-
#line
|
880
|
+
#line 370 "unicorn_http.rl"
|
892
881
|
{
|
893
882
|
finalize_header(hp);
|
894
883
|
|
@@ -909,7 +898,7 @@ tr112:
|
|
909
898
|
}
|
910
899
|
goto st122;
|
911
900
|
tr117:
|
912
|
-
#line
|
901
|
+
#line 355 "unicorn_http.rl"
|
913
902
|
{
|
914
903
|
VALUE val;
|
915
904
|
|
@@ -920,7 +909,7 @@ tr117:
|
|
920
909
|
if (!STR_CSTR_EQ(val, "*"))
|
921
910
|
rb_hash_aset(hp->env, g_path_info, val);
|
922
911
|
}
|
923
|
-
#line
|
912
|
+
#line 330 "unicorn_http.rl"
|
924
913
|
{
|
925
914
|
VALUE str;
|
926
915
|
|
@@ -936,7 +925,7 @@ tr117:
|
|
936
925
|
rb_hash_aset(hp->env, g_request_path, str);
|
937
926
|
}
|
938
927
|
}
|
939
|
-
#line
|
928
|
+
#line 370 "unicorn_http.rl"
|
940
929
|
{
|
941
930
|
finalize_header(hp);
|
942
931
|
|
@@ -957,14 +946,14 @@ tr117:
|
|
957
946
|
}
|
958
947
|
goto st122;
|
959
948
|
tr124:
|
960
|
-
#line
|
949
|
+
#line 349 "unicorn_http.rl"
|
961
950
|
{MARK(start.query, p); }
|
962
|
-
#line
|
951
|
+
#line 350 "unicorn_http.rl"
|
963
952
|
{
|
964
953
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
965
954
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
966
955
|
}
|
967
|
-
#line
|
956
|
+
#line 330 "unicorn_http.rl"
|
968
957
|
{
|
969
958
|
VALUE str;
|
970
959
|
|
@@ -980,7 +969,7 @@ tr124:
|
|
980
969
|
rb_hash_aset(hp->env, g_request_path, str);
|
981
970
|
}
|
982
971
|
}
|
983
|
-
#line
|
972
|
+
#line 370 "unicorn_http.rl"
|
984
973
|
{
|
985
974
|
finalize_header(hp);
|
986
975
|
|
@@ -1001,12 +990,12 @@ tr124:
|
|
1001
990
|
}
|
1002
991
|
goto st122;
|
1003
992
|
tr129:
|
1004
|
-
#line
|
993
|
+
#line 350 "unicorn_http.rl"
|
1005
994
|
{
|
1006
995
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
1007
996
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
1008
997
|
}
|
1009
|
-
#line
|
998
|
+
#line 330 "unicorn_http.rl"
|
1010
999
|
{
|
1011
1000
|
VALUE str;
|
1012
1001
|
|
@@ -1022,7 +1011,7 @@ tr129:
|
|
1022
1011
|
rb_hash_aset(hp->env, g_request_path, str);
|
1023
1012
|
}
|
1024
1013
|
}
|
1025
|
-
#line
|
1014
|
+
#line 370 "unicorn_http.rl"
|
1026
1015
|
{
|
1027
1016
|
finalize_header(hp);
|
1028
1017
|
|
@@ -1046,10 +1035,10 @@ st122:
|
|
1046
1035
|
if ( ++p == pe )
|
1047
1036
|
goto _test_eof122;
|
1048
1037
|
case 122:
|
1049
|
-
#line
|
1038
|
+
#line 1039 "unicorn_http.c"
|
1050
1039
|
goto st0;
|
1051
1040
|
tr105:
|
1052
|
-
#line
|
1041
|
+
#line 330 "unicorn_http.rl"
|
1053
1042
|
{
|
1054
1043
|
VALUE str;
|
1055
1044
|
|
@@ -1067,23 +1056,23 @@ tr105:
|
|
1067
1056
|
}
|
1068
1057
|
goto st18;
|
1069
1058
|
tr109:
|
1070
|
-
#line
|
1059
|
+
#line 316 "unicorn_http.rl"
|
1071
1060
|
{MARK(mark, p); }
|
1072
|
-
#line
|
1061
|
+
#line 345 "unicorn_http.rl"
|
1073
1062
|
{
|
1074
1063
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
1075
1064
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
1076
1065
|
}
|
1077
1066
|
goto st18;
|
1078
1067
|
tr113:
|
1079
|
-
#line
|
1068
|
+
#line 345 "unicorn_http.rl"
|
1080
1069
|
{
|
1081
1070
|
VALIDATE_MAX_URI_LENGTH(LEN(mark, p), FRAGMENT);
|
1082
1071
|
rb_hash_aset(hp->env, g_fragment, STR_NEW(mark, p));
|
1083
1072
|
}
|
1084
1073
|
goto st18;
|
1085
1074
|
tr118:
|
1086
|
-
#line
|
1075
|
+
#line 355 "unicorn_http.rl"
|
1087
1076
|
{
|
1088
1077
|
VALUE val;
|
1089
1078
|
|
@@ -1094,7 +1083,7 @@ tr118:
|
|
1094
1083
|
if (!STR_CSTR_EQ(val, "*"))
|
1095
1084
|
rb_hash_aset(hp->env, g_path_info, val);
|
1096
1085
|
}
|
1097
|
-
#line
|
1086
|
+
#line 330 "unicorn_http.rl"
|
1098
1087
|
{
|
1099
1088
|
VALUE str;
|
1100
1089
|
|
@@ -1112,14 +1101,14 @@ tr118:
|
|
1112
1101
|
}
|
1113
1102
|
goto st18;
|
1114
1103
|
tr125:
|
1115
|
-
#line
|
1104
|
+
#line 349 "unicorn_http.rl"
|
1116
1105
|
{MARK(start.query, p); }
|
1117
|
-
#line
|
1106
|
+
#line 350 "unicorn_http.rl"
|
1118
1107
|
{
|
1119
1108
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
1120
1109
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
1121
1110
|
}
|
1122
|
-
#line
|
1111
|
+
#line 330 "unicorn_http.rl"
|
1123
1112
|
{
|
1124
1113
|
VALUE str;
|
1125
1114
|
|
@@ -1137,12 +1126,12 @@ tr125:
|
|
1137
1126
|
}
|
1138
1127
|
goto st18;
|
1139
1128
|
tr130:
|
1140
|
-
#line
|
1129
|
+
#line 350 "unicorn_http.rl"
|
1141
1130
|
{
|
1142
1131
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
1143
1132
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
1144
1133
|
}
|
1145
|
-
#line
|
1134
|
+
#line 330 "unicorn_http.rl"
|
1146
1135
|
{
|
1147
1136
|
VALUE str;
|
1148
1137
|
|
@@ -1163,25 +1152,25 @@ st18:
|
|
1163
1152
|
if ( ++p == pe )
|
1164
1153
|
goto _test_eof18;
|
1165
1154
|
case 18:
|
1166
|
-
#line
|
1155
|
+
#line 1156 "unicorn_http.c"
|
1167
1156
|
if ( (*p) == 10 )
|
1168
1157
|
goto tr21;
|
1169
1158
|
goto st0;
|
1170
1159
|
tr23:
|
1171
|
-
#line
|
1160
|
+
#line 318 "unicorn_http.rl"
|
1172
1161
|
{ MARK(start.field, p); }
|
1173
|
-
#line
|
1162
|
+
#line 319 "unicorn_http.rl"
|
1174
1163
|
{ snake_upcase_char(deconst(p)); }
|
1175
1164
|
goto st19;
|
1176
1165
|
tr32:
|
1177
|
-
#line
|
1166
|
+
#line 319 "unicorn_http.rl"
|
1178
1167
|
{ snake_upcase_char(deconst(p)); }
|
1179
1168
|
goto st19;
|
1180
1169
|
st19:
|
1181
1170
|
if ( ++p == pe )
|
1182
1171
|
goto _test_eof19;
|
1183
1172
|
case 19:
|
1184
|
-
#line
|
1173
|
+
#line 1174 "unicorn_http.c"
|
1185
1174
|
switch( (*p) ) {
|
1186
1175
|
case 33: goto tr32;
|
1187
1176
|
case 58: goto tr33;
|
@@ -1207,18 +1196,18 @@ case 19:
|
|
1207
1196
|
goto tr32;
|
1208
1197
|
goto st0;
|
1209
1198
|
tr35:
|
1210
|
-
#line
|
1199
|
+
#line 322 "unicorn_http.rl"
|
1211
1200
|
{ MARK(mark, p); }
|
1212
1201
|
goto st20;
|
1213
1202
|
tr33:
|
1214
|
-
#line
|
1203
|
+
#line 321 "unicorn_http.rl"
|
1215
1204
|
{ hp->s.field_len = LEN(start.field, p); }
|
1216
1205
|
goto st20;
|
1217
1206
|
st20:
|
1218
1207
|
if ( ++p == pe )
|
1219
1208
|
goto _test_eof20;
|
1220
1209
|
case 20:
|
1221
|
-
#line
|
1210
|
+
#line 1211 "unicorn_http.c"
|
1222
1211
|
switch( (*p) ) {
|
1223
1212
|
case 9: goto tr35;
|
1224
1213
|
case 10: goto tr36;
|
@@ -1230,14 +1219,14 @@ case 20:
|
|
1230
1219
|
goto st0;
|
1231
1220
|
goto tr34;
|
1232
1221
|
tr34:
|
1233
|
-
#line
|
1222
|
+
#line 322 "unicorn_http.rl"
|
1234
1223
|
{ MARK(mark, p); }
|
1235
1224
|
goto st21;
|
1236
1225
|
st21:
|
1237
1226
|
if ( ++p == pe )
|
1238
1227
|
goto _test_eof21;
|
1239
1228
|
case 21:
|
1240
|
-
#line
|
1229
|
+
#line 1230 "unicorn_http.c"
|
1241
1230
|
switch( (*p) ) {
|
1242
1231
|
case 10: goto tr39;
|
1243
1232
|
case 13: goto tr40;
|
@@ -1250,7 +1239,7 @@ case 21:
|
|
1250
1239
|
goto st0;
|
1251
1240
|
goto st21;
|
1252
1241
|
tr9:
|
1253
|
-
#line
|
1242
|
+
#line 330 "unicorn_http.rl"
|
1254
1243
|
{
|
1255
1244
|
VALUE str;
|
1256
1245
|
|
@@ -1268,7 +1257,7 @@ tr9:
|
|
1268
1257
|
}
|
1269
1258
|
goto st22;
|
1270
1259
|
tr50:
|
1271
|
-
#line
|
1260
|
+
#line 355 "unicorn_http.rl"
|
1272
1261
|
{
|
1273
1262
|
VALUE val;
|
1274
1263
|
|
@@ -1279,7 +1268,7 @@ tr50:
|
|
1279
1268
|
if (!STR_CSTR_EQ(val, "*"))
|
1280
1269
|
rb_hash_aset(hp->env, g_path_info, val);
|
1281
1270
|
}
|
1282
|
-
#line
|
1271
|
+
#line 330 "unicorn_http.rl"
|
1283
1272
|
{
|
1284
1273
|
VALUE str;
|
1285
1274
|
|
@@ -1297,14 +1286,14 @@ tr50:
|
|
1297
1286
|
}
|
1298
1287
|
goto st22;
|
1299
1288
|
tr56:
|
1300
|
-
#line
|
1289
|
+
#line 349 "unicorn_http.rl"
|
1301
1290
|
{MARK(start.query, p); }
|
1302
|
-
#line
|
1291
|
+
#line 350 "unicorn_http.rl"
|
1303
1292
|
{
|
1304
1293
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
1305
1294
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
1306
1295
|
}
|
1307
|
-
#line
|
1296
|
+
#line 330 "unicorn_http.rl"
|
1308
1297
|
{
|
1309
1298
|
VALUE str;
|
1310
1299
|
|
@@ -1322,12 +1311,12 @@ tr56:
|
|
1322
1311
|
}
|
1323
1312
|
goto st22;
|
1324
1313
|
tr60:
|
1325
|
-
#line
|
1314
|
+
#line 350 "unicorn_http.rl"
|
1326
1315
|
{
|
1327
1316
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
1328
1317
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
1329
1318
|
}
|
1330
|
-
#line
|
1319
|
+
#line 330 "unicorn_http.rl"
|
1331
1320
|
{
|
1332
1321
|
VALUE str;
|
1333
1322
|
|
@@ -1348,7 +1337,7 @@ st22:
|
|
1348
1337
|
if ( ++p == pe )
|
1349
1338
|
goto _test_eof22;
|
1350
1339
|
case 22:
|
1351
|
-
#line
|
1340
|
+
#line 1341 "unicorn_http.c"
|
1352
1341
|
switch( (*p) ) {
|
1353
1342
|
case 32: goto tr42;
|
1354
1343
|
case 35: goto st0;
|
@@ -1359,14 +1348,14 @@ case 22:
|
|
1359
1348
|
goto st0;
|
1360
1349
|
goto tr41;
|
1361
1350
|
tr41:
|
1362
|
-
#line
|
1351
|
+
#line 316 "unicorn_http.rl"
|
1363
1352
|
{MARK(mark, p); }
|
1364
1353
|
goto st23;
|
1365
1354
|
st23:
|
1366
1355
|
if ( ++p == pe )
|
1367
1356
|
goto _test_eof23;
|
1368
1357
|
case 23:
|
1369
|
-
#line
|
1358
|
+
#line 1359 "unicorn_http.c"
|
1370
1359
|
switch( (*p) ) {
|
1371
1360
|
case 32: goto tr45;
|
1372
1361
|
case 35: goto st0;
|
@@ -1377,14 +1366,14 @@ case 23:
|
|
1377
1366
|
goto st0;
|
1378
1367
|
goto st23;
|
1379
1368
|
tr43:
|
1380
|
-
#line
|
1369
|
+
#line 316 "unicorn_http.rl"
|
1381
1370
|
{MARK(mark, p); }
|
1382
1371
|
goto st24;
|
1383
1372
|
st24:
|
1384
1373
|
if ( ++p == pe )
|
1385
1374
|
goto _test_eof24;
|
1386
1375
|
case 24:
|
1387
|
-
#line
|
1376
|
+
#line 1377 "unicorn_http.c"
|
1388
1377
|
if ( (*p) < 65 ) {
|
1389
1378
|
if ( 48 <= (*p) && (*p) <= 57 )
|
1390
1379
|
goto st25;
|
@@ -1408,20 +1397,20 @@ case 25:
|
|
1408
1397
|
goto st23;
|
1409
1398
|
goto st0;
|
1410
1399
|
tr6:
|
1411
|
-
#line
|
1400
|
+
#line 316 "unicorn_http.rl"
|
1412
1401
|
{MARK(mark, p); }
|
1413
1402
|
goto st26;
|
1414
1403
|
tr76:
|
1415
|
-
#line
|
1404
|
+
#line 329 "unicorn_http.rl"
|
1416
1405
|
{ rb_hash_aset(hp->env, g_http_host, STR_NEW(mark, p)); }
|
1417
|
-
#line
|
1406
|
+
#line 316 "unicorn_http.rl"
|
1418
1407
|
{MARK(mark, p); }
|
1419
1408
|
goto st26;
|
1420
1409
|
st26:
|
1421
1410
|
if ( ++p == pe )
|
1422
1411
|
goto _test_eof26;
|
1423
1412
|
case 26:
|
1424
|
-
#line
|
1413
|
+
#line 1414 "unicorn_http.c"
|
1425
1414
|
switch( (*p) ) {
|
1426
1415
|
case 32: goto tr49;
|
1427
1416
|
case 35: goto tr50;
|
@@ -1459,7 +1448,7 @@ case 28:
|
|
1459
1448
|
goto st26;
|
1460
1449
|
goto st0;
|
1461
1450
|
tr52:
|
1462
|
-
#line
|
1451
|
+
#line 355 "unicorn_http.rl"
|
1463
1452
|
{
|
1464
1453
|
VALUE val;
|
1465
1454
|
|
@@ -1475,7 +1464,7 @@ st29:
|
|
1475
1464
|
if ( ++p == pe )
|
1476
1465
|
goto _test_eof29;
|
1477
1466
|
case 29:
|
1478
|
-
#line
|
1467
|
+
#line 1468 "unicorn_http.c"
|
1479
1468
|
switch( (*p) ) {
|
1480
1469
|
case 32: goto tr55;
|
1481
1470
|
case 35: goto tr56;
|
@@ -1486,14 +1475,14 @@ case 29:
|
|
1486
1475
|
goto st0;
|
1487
1476
|
goto tr54;
|
1488
1477
|
tr54:
|
1489
|
-
#line
|
1478
|
+
#line 349 "unicorn_http.rl"
|
1490
1479
|
{MARK(start.query, p); }
|
1491
1480
|
goto st30;
|
1492
1481
|
st30:
|
1493
1482
|
if ( ++p == pe )
|
1494
1483
|
goto _test_eof30;
|
1495
1484
|
case 30:
|
1496
|
-
#line
|
1485
|
+
#line 1486 "unicorn_http.c"
|
1497
1486
|
switch( (*p) ) {
|
1498
1487
|
case 32: goto tr59;
|
1499
1488
|
case 35: goto tr60;
|
@@ -1504,14 +1493,14 @@ case 30:
|
|
1504
1493
|
goto st0;
|
1505
1494
|
goto st30;
|
1506
1495
|
tr57:
|
1507
|
-
#line
|
1496
|
+
#line 349 "unicorn_http.rl"
|
1508
1497
|
{MARK(start.query, p); }
|
1509
1498
|
goto st31;
|
1510
1499
|
st31:
|
1511
1500
|
if ( ++p == pe )
|
1512
1501
|
goto _test_eof31;
|
1513
1502
|
case 31:
|
1514
|
-
#line
|
1503
|
+
#line 1504 "unicorn_http.c"
|
1515
1504
|
if ( (*p) < 65 ) {
|
1516
1505
|
if ( 48 <= (*p) && (*p) <= 57 )
|
1517
1506
|
goto st32;
|
@@ -1535,58 +1524,58 @@ case 32:
|
|
1535
1524
|
goto st30;
|
1536
1525
|
goto st0;
|
1537
1526
|
tr7:
|
1538
|
-
#line
|
1527
|
+
#line 316 "unicorn_http.rl"
|
1539
1528
|
{MARK(mark, p); }
|
1540
|
-
#line
|
1529
|
+
#line 320 "unicorn_http.rl"
|
1541
1530
|
{ downcase_char(deconst(p)); }
|
1542
1531
|
goto st33;
|
1543
1532
|
st33:
|
1544
1533
|
if ( ++p == pe )
|
1545
1534
|
goto _test_eof33;
|
1546
1535
|
case 33:
|
1547
|
-
#line
|
1536
|
+
#line 1537 "unicorn_http.c"
|
1548
1537
|
switch( (*p) ) {
|
1549
1538
|
case 84: goto tr63;
|
1550
1539
|
case 116: goto tr63;
|
1551
1540
|
}
|
1552
1541
|
goto st0;
|
1553
1542
|
tr63:
|
1554
|
-
#line
|
1543
|
+
#line 320 "unicorn_http.rl"
|
1555
1544
|
{ downcase_char(deconst(p)); }
|
1556
1545
|
goto st34;
|
1557
1546
|
st34:
|
1558
1547
|
if ( ++p == pe )
|
1559
1548
|
goto _test_eof34;
|
1560
1549
|
case 34:
|
1561
|
-
#line
|
1550
|
+
#line 1551 "unicorn_http.c"
|
1562
1551
|
switch( (*p) ) {
|
1563
1552
|
case 84: goto tr64;
|
1564
1553
|
case 116: goto tr64;
|
1565
1554
|
}
|
1566
1555
|
goto st0;
|
1567
1556
|
tr64:
|
1568
|
-
#line
|
1557
|
+
#line 320 "unicorn_http.rl"
|
1569
1558
|
{ downcase_char(deconst(p)); }
|
1570
1559
|
goto st35;
|
1571
1560
|
st35:
|
1572
1561
|
if ( ++p == pe )
|
1573
1562
|
goto _test_eof35;
|
1574
1563
|
case 35:
|
1575
|
-
#line
|
1564
|
+
#line 1565 "unicorn_http.c"
|
1576
1565
|
switch( (*p) ) {
|
1577
1566
|
case 80: goto tr65;
|
1578
1567
|
case 112: goto tr65;
|
1579
1568
|
}
|
1580
1569
|
goto st0;
|
1581
1570
|
tr65:
|
1582
|
-
#line
|
1571
|
+
#line 320 "unicorn_http.rl"
|
1583
1572
|
{ downcase_char(deconst(p)); }
|
1584
1573
|
goto st36;
|
1585
1574
|
st36:
|
1586
1575
|
if ( ++p == pe )
|
1587
1576
|
goto _test_eof36;
|
1588
1577
|
case 36:
|
1589
|
-
#line
|
1578
|
+
#line 1579 "unicorn_http.c"
|
1590
1579
|
switch( (*p) ) {
|
1591
1580
|
case 58: goto tr66;
|
1592
1581
|
case 83: goto tr67;
|
@@ -1594,7 +1583,7 @@ case 36:
|
|
1594
1583
|
}
|
1595
1584
|
goto st0;
|
1596
1585
|
tr66:
|
1597
|
-
#line
|
1586
|
+
#line 326 "unicorn_http.rl"
|
1598
1587
|
{
|
1599
1588
|
rb_hash_aset(hp->env, g_rack_url_scheme, STR_NEW(mark, p));
|
1600
1589
|
}
|
@@ -1603,7 +1592,7 @@ st37:
|
|
1603
1592
|
if ( ++p == pe )
|
1604
1593
|
goto _test_eof37;
|
1605
1594
|
case 37:
|
1606
|
-
#line
|
1595
|
+
#line 1596 "unicorn_http.c"
|
1607
1596
|
if ( (*p) == 47 )
|
1608
1597
|
goto st38;
|
1609
1598
|
goto st0;
|
@@ -1691,14 +1680,14 @@ case 42:
|
|
1691
1680
|
goto st40;
|
1692
1681
|
goto st0;
|
1693
1682
|
tr72:
|
1694
|
-
#line
|
1683
|
+
#line 316 "unicorn_http.rl"
|
1695
1684
|
{MARK(mark, p); }
|
1696
1685
|
goto st43;
|
1697
1686
|
st43:
|
1698
1687
|
if ( ++p == pe )
|
1699
1688
|
goto _test_eof43;
|
1700
1689
|
case 43:
|
1701
|
-
#line
|
1690
|
+
#line 1691 "unicorn_http.c"
|
1702
1691
|
switch( (*p) ) {
|
1703
1692
|
case 37: goto st41;
|
1704
1693
|
case 47: goto tr76;
|
@@ -1750,14 +1739,14 @@ case 44:
|
|
1750
1739
|
goto st0;
|
1751
1740
|
goto st40;
|
1752
1741
|
tr73:
|
1753
|
-
#line
|
1742
|
+
#line 316 "unicorn_http.rl"
|
1754
1743
|
{MARK(mark, p); }
|
1755
1744
|
goto st45;
|
1756
1745
|
st45:
|
1757
1746
|
if ( ++p == pe )
|
1758
1747
|
goto _test_eof45;
|
1759
1748
|
case 45:
|
1760
|
-
#line
|
1749
|
+
#line 1750 "unicorn_http.c"
|
1761
1750
|
switch( (*p) ) {
|
1762
1751
|
case 37: goto st41;
|
1763
1752
|
case 47: goto st0;
|
@@ -1835,14 +1824,14 @@ case 47:
|
|
1835
1824
|
goto st0;
|
1836
1825
|
goto st40;
|
1837
1826
|
tr67:
|
1838
|
-
#line
|
1827
|
+
#line 320 "unicorn_http.rl"
|
1839
1828
|
{ downcase_char(deconst(p)); }
|
1840
1829
|
goto st48;
|
1841
1830
|
st48:
|
1842
1831
|
if ( ++p == pe )
|
1843
1832
|
goto _test_eof48;
|
1844
1833
|
case 48:
|
1845
|
-
#line
|
1834
|
+
#line 1835 "unicorn_http.c"
|
1846
1835
|
if ( (*p) == 58 )
|
1847
1836
|
goto tr66;
|
1848
1837
|
goto st0;
|
@@ -2358,14 +2347,14 @@ case 67:
|
|
2358
2347
|
goto tr3;
|
2359
2348
|
goto st0;
|
2360
2349
|
tr2:
|
2361
|
-
#line
|
2350
|
+
#line 316 "unicorn_http.rl"
|
2362
2351
|
{MARK(mark, p); }
|
2363
2352
|
goto st68;
|
2364
2353
|
st68:
|
2365
2354
|
if ( ++p == pe )
|
2366
2355
|
goto _test_eof68;
|
2367
2356
|
case 68:
|
2368
|
-
#line
|
2357
|
+
#line 2358 "unicorn_http.c"
|
2369
2358
|
switch( (*p) ) {
|
2370
2359
|
case 32: goto tr3;
|
2371
2360
|
case 33: goto st49;
|
@@ -2449,14 +2438,14 @@ case 70:
|
|
2449
2438
|
goto st51;
|
2450
2439
|
goto st0;
|
2451
2440
|
tr100:
|
2452
|
-
#line
|
2441
|
+
#line 325 "unicorn_http.rl"
|
2453
2442
|
{ request_method(hp, PTR_TO(mark), LEN(mark, p)); }
|
2454
2443
|
goto st71;
|
2455
2444
|
st71:
|
2456
2445
|
if ( ++p == pe )
|
2457
2446
|
goto _test_eof71;
|
2458
2447
|
case 71:
|
2459
|
-
#line
|
2448
|
+
#line 2449 "unicorn_http.c"
|
2460
2449
|
switch( (*p) ) {
|
2461
2450
|
case 42: goto tr101;
|
2462
2451
|
case 47: goto tr102;
|
@@ -2465,14 +2454,14 @@ case 71:
|
|
2465
2454
|
}
|
2466
2455
|
goto st0;
|
2467
2456
|
tr101:
|
2468
|
-
#line
|
2457
|
+
#line 316 "unicorn_http.rl"
|
2469
2458
|
{MARK(mark, p); }
|
2470
2459
|
goto st72;
|
2471
2460
|
st72:
|
2472
2461
|
if ( ++p == pe )
|
2473
2462
|
goto _test_eof72;
|
2474
2463
|
case 72:
|
2475
|
-
#line
|
2464
|
+
#line 2465 "unicorn_http.c"
|
2476
2465
|
switch( (*p) ) {
|
2477
2466
|
case 10: goto tr104;
|
2478
2467
|
case 13: goto tr105;
|
@@ -2481,7 +2470,7 @@ case 72:
|
|
2481
2470
|
}
|
2482
2471
|
goto st0;
|
2483
2472
|
tr106:
|
2484
|
-
#line
|
2473
|
+
#line 330 "unicorn_http.rl"
|
2485
2474
|
{
|
2486
2475
|
VALUE str;
|
2487
2476
|
|
@@ -2499,7 +2488,7 @@ tr106:
|
|
2499
2488
|
}
|
2500
2489
|
goto st73;
|
2501
2490
|
tr119:
|
2502
|
-
#line
|
2491
|
+
#line 355 "unicorn_http.rl"
|
2503
2492
|
{
|
2504
2493
|
VALUE val;
|
2505
2494
|
|
@@ -2510,7 +2499,7 @@ tr119:
|
|
2510
2499
|
if (!STR_CSTR_EQ(val, "*"))
|
2511
2500
|
rb_hash_aset(hp->env, g_path_info, val);
|
2512
2501
|
}
|
2513
|
-
#line
|
2502
|
+
#line 330 "unicorn_http.rl"
|
2514
2503
|
{
|
2515
2504
|
VALUE str;
|
2516
2505
|
|
@@ -2528,14 +2517,14 @@ tr119:
|
|
2528
2517
|
}
|
2529
2518
|
goto st73;
|
2530
2519
|
tr126:
|
2531
|
-
#line
|
2520
|
+
#line 349 "unicorn_http.rl"
|
2532
2521
|
{MARK(start.query, p); }
|
2533
|
-
#line
|
2522
|
+
#line 350 "unicorn_http.rl"
|
2534
2523
|
{
|
2535
2524
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
2536
2525
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
2537
2526
|
}
|
2538
|
-
#line
|
2527
|
+
#line 330 "unicorn_http.rl"
|
2539
2528
|
{
|
2540
2529
|
VALUE str;
|
2541
2530
|
|
@@ -2553,12 +2542,12 @@ tr126:
|
|
2553
2542
|
}
|
2554
2543
|
goto st73;
|
2555
2544
|
tr131:
|
2556
|
-
#line
|
2545
|
+
#line 350 "unicorn_http.rl"
|
2557
2546
|
{
|
2558
2547
|
VALIDATE_MAX_URI_LENGTH(LEN(start.query, p), QUERY_STRING);
|
2559
2548
|
rb_hash_aset(hp->env, g_query_string, STR_NEW(start.query, p));
|
2560
2549
|
}
|
2561
|
-
#line
|
2550
|
+
#line 330 "unicorn_http.rl"
|
2562
2551
|
{
|
2563
2552
|
VALUE str;
|
2564
2553
|
|
@@ -2579,7 +2568,7 @@ st73:
|
|
2579
2568
|
if ( ++p == pe )
|
2580
2569
|
goto _test_eof73;
|
2581
2570
|
case 73:
|
2582
|
-
#line
|
2571
|
+
#line 2572 "unicorn_http.c"
|
2583
2572
|
switch( (*p) ) {
|
2584
2573
|
case 10: goto tr108;
|
2585
2574
|
case 13: goto tr109;
|
@@ -2592,14 +2581,14 @@ case 73:
|
|
2592
2581
|
goto st0;
|
2593
2582
|
goto tr107;
|
2594
2583
|
tr107:
|
2595
|
-
#line
|
2584
|
+
#line 316 "unicorn_http.rl"
|
2596
2585
|
{MARK(mark, p); }
|
2597
2586
|
goto st74;
|
2598
2587
|
st74:
|
2599
2588
|
if ( ++p == pe )
|
2600
2589
|
goto _test_eof74;
|
2601
2590
|
case 74:
|
2602
|
-
#line
|
2591
|
+
#line 2592 "unicorn_http.c"
|
2603
2592
|
switch( (*p) ) {
|
2604
2593
|
case 10: goto tr112;
|
2605
2594
|
case 13: goto tr113;
|
@@ -2612,14 +2601,14 @@ case 74:
|
|
2612
2601
|
goto st0;
|
2613
2602
|
goto st74;
|
2614
2603
|
tr110:
|
2615
|
-
#line
|
2604
|
+
#line 316 "unicorn_http.rl"
|
2616
2605
|
{MARK(mark, p); }
|
2617
2606
|
goto st75;
|
2618
2607
|
st75:
|
2619
2608
|
if ( ++p == pe )
|
2620
2609
|
goto _test_eof75;
|
2621
2610
|
case 75:
|
2622
|
-
#line
|
2611
|
+
#line 2612 "unicorn_http.c"
|
2623
2612
|
if ( (*p) < 65 ) {
|
2624
2613
|
if ( 48 <= (*p) && (*p) <= 57 )
|
2625
2614
|
goto st76;
|
@@ -2643,20 +2632,20 @@ case 76:
|
|
2643
2632
|
goto st74;
|
2644
2633
|
goto st0;
|
2645
2634
|
tr102:
|
2646
|
-
#line
|
2635
|
+
#line 316 "unicorn_http.rl"
|
2647
2636
|
{MARK(mark, p); }
|
2648
2637
|
goto st77;
|
2649
2638
|
tr147:
|
2650
|
-
#line
|
2639
|
+
#line 329 "unicorn_http.rl"
|
2651
2640
|
{ rb_hash_aset(hp->env, g_http_host, STR_NEW(mark, p)); }
|
2652
|
-
#line
|
2641
|
+
#line 316 "unicorn_http.rl"
|
2653
2642
|
{MARK(mark, p); }
|
2654
2643
|
goto st77;
|
2655
2644
|
st77:
|
2656
2645
|
if ( ++p == pe )
|
2657
2646
|
goto _test_eof77;
|
2658
2647
|
case 77:
|
2659
|
-
#line
|
2648
|
+
#line 2649 "unicorn_http.c"
|
2660
2649
|
switch( (*p) ) {
|
2661
2650
|
case 10: goto tr117;
|
2662
2651
|
case 13: goto tr118;
|
@@ -2696,7 +2685,7 @@ case 79:
|
|
2696
2685
|
goto st77;
|
2697
2686
|
goto st0;
|
2698
2687
|
tr121:
|
2699
|
-
#line
|
2688
|
+
#line 355 "unicorn_http.rl"
|
2700
2689
|
{
|
2701
2690
|
VALUE val;
|
2702
2691
|
|
@@ -2712,7 +2701,7 @@ st80:
|
|
2712
2701
|
if ( ++p == pe )
|
2713
2702
|
goto _test_eof80;
|
2714
2703
|
case 80:
|
2715
|
-
#line
|
2704
|
+
#line 2705 "unicorn_http.c"
|
2716
2705
|
switch( (*p) ) {
|
2717
2706
|
case 10: goto tr124;
|
2718
2707
|
case 13: goto tr125;
|
@@ -2725,14 +2714,14 @@ case 80:
|
|
2725
2714
|
goto st0;
|
2726
2715
|
goto tr123;
|
2727
2716
|
tr123:
|
2728
|
-
#line
|
2717
|
+
#line 349 "unicorn_http.rl"
|
2729
2718
|
{MARK(start.query, p); }
|
2730
2719
|
goto st81;
|
2731
2720
|
st81:
|
2732
2721
|
if ( ++p == pe )
|
2733
2722
|
goto _test_eof81;
|
2734
2723
|
case 81:
|
2735
|
-
#line
|
2724
|
+
#line 2725 "unicorn_http.c"
|
2736
2725
|
switch( (*p) ) {
|
2737
2726
|
case 10: goto tr129;
|
2738
2727
|
case 13: goto tr130;
|
@@ -2745,14 +2734,14 @@ case 81:
|
|
2745
2734
|
goto st0;
|
2746
2735
|
goto st81;
|
2747
2736
|
tr127:
|
2748
|
-
#line
|
2737
|
+
#line 349 "unicorn_http.rl"
|
2749
2738
|
{MARK(start.query, p); }
|
2750
2739
|
goto st82;
|
2751
2740
|
st82:
|
2752
2741
|
if ( ++p == pe )
|
2753
2742
|
goto _test_eof82;
|
2754
2743
|
case 82:
|
2755
|
-
#line
|
2744
|
+
#line 2745 "unicorn_http.c"
|
2756
2745
|
if ( (*p) < 65 ) {
|
2757
2746
|
if ( 48 <= (*p) && (*p) <= 57 )
|
2758
2747
|
goto st83;
|
@@ -2776,58 +2765,58 @@ case 83:
|
|
2776
2765
|
goto st81;
|
2777
2766
|
goto st0;
|
2778
2767
|
tr103:
|
2779
|
-
#line
|
2768
|
+
#line 316 "unicorn_http.rl"
|
2780
2769
|
{MARK(mark, p); }
|
2781
|
-
#line
|
2770
|
+
#line 320 "unicorn_http.rl"
|
2782
2771
|
{ downcase_char(deconst(p)); }
|
2783
2772
|
goto st84;
|
2784
2773
|
st84:
|
2785
2774
|
if ( ++p == pe )
|
2786
2775
|
goto _test_eof84;
|
2787
2776
|
case 84:
|
2788
|
-
#line
|
2777
|
+
#line 2778 "unicorn_http.c"
|
2789
2778
|
switch( (*p) ) {
|
2790
2779
|
case 84: goto tr134;
|
2791
2780
|
case 116: goto tr134;
|
2792
2781
|
}
|
2793
2782
|
goto st0;
|
2794
2783
|
tr134:
|
2795
|
-
#line
|
2784
|
+
#line 320 "unicorn_http.rl"
|
2796
2785
|
{ downcase_char(deconst(p)); }
|
2797
2786
|
goto st85;
|
2798
2787
|
st85:
|
2799
2788
|
if ( ++p == pe )
|
2800
2789
|
goto _test_eof85;
|
2801
2790
|
case 85:
|
2802
|
-
#line
|
2791
|
+
#line 2792 "unicorn_http.c"
|
2803
2792
|
switch( (*p) ) {
|
2804
2793
|
case 84: goto tr135;
|
2805
2794
|
case 116: goto tr135;
|
2806
2795
|
}
|
2807
2796
|
goto st0;
|
2808
2797
|
tr135:
|
2809
|
-
#line
|
2798
|
+
#line 320 "unicorn_http.rl"
|
2810
2799
|
{ downcase_char(deconst(p)); }
|
2811
2800
|
goto st86;
|
2812
2801
|
st86:
|
2813
2802
|
if ( ++p == pe )
|
2814
2803
|
goto _test_eof86;
|
2815
2804
|
case 86:
|
2816
|
-
#line
|
2805
|
+
#line 2806 "unicorn_http.c"
|
2817
2806
|
switch( (*p) ) {
|
2818
2807
|
case 80: goto tr136;
|
2819
2808
|
case 112: goto tr136;
|
2820
2809
|
}
|
2821
2810
|
goto st0;
|
2822
2811
|
tr136:
|
2823
|
-
#line
|
2812
|
+
#line 320 "unicorn_http.rl"
|
2824
2813
|
{ downcase_char(deconst(p)); }
|
2825
2814
|
goto st87;
|
2826
2815
|
st87:
|
2827
2816
|
if ( ++p == pe )
|
2828
2817
|
goto _test_eof87;
|
2829
2818
|
case 87:
|
2830
|
-
#line
|
2819
|
+
#line 2820 "unicorn_http.c"
|
2831
2820
|
switch( (*p) ) {
|
2832
2821
|
case 58: goto tr137;
|
2833
2822
|
case 83: goto tr138;
|
@@ -2835,7 +2824,7 @@ case 87:
|
|
2835
2824
|
}
|
2836
2825
|
goto st0;
|
2837
2826
|
tr137:
|
2838
|
-
#line
|
2827
|
+
#line 326 "unicorn_http.rl"
|
2839
2828
|
{
|
2840
2829
|
rb_hash_aset(hp->env, g_rack_url_scheme, STR_NEW(mark, p));
|
2841
2830
|
}
|
@@ -2844,7 +2833,7 @@ st88:
|
|
2844
2833
|
if ( ++p == pe )
|
2845
2834
|
goto _test_eof88;
|
2846
2835
|
case 88:
|
2847
|
-
#line
|
2836
|
+
#line 2837 "unicorn_http.c"
|
2848
2837
|
if ( (*p) == 47 )
|
2849
2838
|
goto st89;
|
2850
2839
|
goto st0;
|
@@ -2932,14 +2921,14 @@ case 93:
|
|
2932
2921
|
goto st91;
|
2933
2922
|
goto st0;
|
2934
2923
|
tr143:
|
2935
|
-
#line
|
2924
|
+
#line 316 "unicorn_http.rl"
|
2936
2925
|
{MARK(mark, p); }
|
2937
2926
|
goto st94;
|
2938
2927
|
st94:
|
2939
2928
|
if ( ++p == pe )
|
2940
2929
|
goto _test_eof94;
|
2941
2930
|
case 94:
|
2942
|
-
#line
|
2931
|
+
#line 2932 "unicorn_http.c"
|
2943
2932
|
switch( (*p) ) {
|
2944
2933
|
case 37: goto st92;
|
2945
2934
|
case 47: goto tr147;
|
@@ -2991,14 +2980,14 @@ case 95:
|
|
2991
2980
|
goto st0;
|
2992
2981
|
goto st91;
|
2993
2982
|
tr144:
|
2994
|
-
#line
|
2983
|
+
#line 316 "unicorn_http.rl"
|
2995
2984
|
{MARK(mark, p); }
|
2996
2985
|
goto st96;
|
2997
2986
|
st96:
|
2998
2987
|
if ( ++p == pe )
|
2999
2988
|
goto _test_eof96;
|
3000
2989
|
case 96:
|
3001
|
-
#line
|
2990
|
+
#line 2991 "unicorn_http.c"
|
3002
2991
|
switch( (*p) ) {
|
3003
2992
|
case 37: goto st92;
|
3004
2993
|
case 47: goto st0;
|
@@ -3076,14 +3065,14 @@ case 98:
|
|
3076
3065
|
goto st0;
|
3077
3066
|
goto st91;
|
3078
3067
|
tr138:
|
3079
|
-
#line
|
3068
|
+
#line 320 "unicorn_http.rl"
|
3080
3069
|
{ downcase_char(deconst(p)); }
|
3081
3070
|
goto st99;
|
3082
3071
|
st99:
|
3083
3072
|
if ( ++p == pe )
|
3084
3073
|
goto _test_eof99;
|
3085
3074
|
case 99:
|
3086
|
-
#line
|
3075
|
+
#line 3076 "unicorn_http.c"
|
3087
3076
|
if ( (*p) == 58 )
|
3088
3077
|
goto tr137;
|
3089
3078
|
goto st0;
|
@@ -3103,7 +3092,7 @@ case 100:
|
|
3103
3092
|
goto tr152;
|
3104
3093
|
goto st0;
|
3105
3094
|
tr151:
|
3106
|
-
#line
|
3095
|
+
#line 365 "unicorn_http.rl"
|
3107
3096
|
{
|
3108
3097
|
hp->len.chunk = step_incr(hp->len.chunk, (*p), 16);
|
3109
3098
|
if (hp->len.chunk < 0)
|
@@ -3114,7 +3103,7 @@ st101:
|
|
3114
3103
|
if ( ++p == pe )
|
3115
3104
|
goto _test_eof101;
|
3116
3105
|
case 101:
|
3117
|
-
#line
|
3106
|
+
#line 3107 "unicorn_http.c"
|
3118
3107
|
switch( (*p) ) {
|
3119
3108
|
case 10: goto tr153;
|
3120
3109
|
case 13: goto st102;
|
@@ -3131,7 +3120,7 @@ case 101:
|
|
3131
3120
|
goto tr152;
|
3132
3121
|
goto st0;
|
3133
3122
|
tr153:
|
3134
|
-
#line
|
3123
|
+
#line 394 "unicorn_http.rl"
|
3135
3124
|
{
|
3136
3125
|
HP_FL_SET(hp, INTRAILER);
|
3137
3126
|
cs = http_parser_en_Trailers;
|
@@ -3144,7 +3133,7 @@ st123:
|
|
3144
3133
|
if ( ++p == pe )
|
3145
3134
|
goto _test_eof123;
|
3146
3135
|
case 123:
|
3147
|
-
#line
|
3136
|
+
#line 3137 "unicorn_http.c"
|
3148
3137
|
goto st0;
|
3149
3138
|
st102:
|
3150
3139
|
if ( ++p == pe )
|
@@ -3154,7 +3143,7 @@ case 102:
|
|
3154
3143
|
goto tr153;
|
3155
3144
|
goto st0;
|
3156
3145
|
tr152:
|
3157
|
-
#line
|
3146
|
+
#line 365 "unicorn_http.rl"
|
3158
3147
|
{
|
3159
3148
|
hp->len.chunk = step_incr(hp->len.chunk, (*p), 16);
|
3160
3149
|
if (hp->len.chunk < 0)
|
@@ -3165,7 +3154,7 @@ st103:
|
|
3165
3154
|
if ( ++p == pe )
|
3166
3155
|
goto _test_eof103;
|
3167
3156
|
case 103:
|
3168
|
-
#line
|
3157
|
+
#line 3158 "unicorn_http.c"
|
3169
3158
|
switch( (*p) ) {
|
3170
3159
|
case 10: goto st104;
|
3171
3160
|
case 13: goto st107;
|
@@ -3186,7 +3175,7 @@ st104:
|
|
3186
3175
|
case 104:
|
3187
3176
|
goto tr159;
|
3188
3177
|
tr159:
|
3189
|
-
#line
|
3178
|
+
#line 402 "unicorn_http.rl"
|
3190
3179
|
{
|
3191
3180
|
skip_chunk_data_hack: {
|
3192
3181
|
size_t nr = MIN((size_t)hp->len.chunk, REMAINING);
|
@@ -3208,7 +3197,7 @@ st105:
|
|
3208
3197
|
if ( ++p == pe )
|
3209
3198
|
goto _test_eof105;
|
3210
3199
|
case 105:
|
3211
|
-
#line
|
3200
|
+
#line 3201 "unicorn_http.c"
|
3212
3201
|
switch( (*p) ) {
|
3213
3202
|
case 10: goto st100;
|
3214
3203
|
case 13: goto st106;
|
@@ -3415,30 +3404,30 @@ case 113:
|
|
3415
3404
|
goto st113;
|
3416
3405
|
goto st0;
|
3417
3406
|
tr172:
|
3418
|
-
#line
|
3407
|
+
#line 322 "unicorn_http.rl"
|
3419
3408
|
{ MARK(mark, p); }
|
3420
|
-
#line
|
3409
|
+
#line 324 "unicorn_http.rl"
|
3421
3410
|
{ write_cont_value(hp, buffer, p); }
|
3422
3411
|
goto st114;
|
3423
3412
|
tr175:
|
3424
|
-
#line
|
3413
|
+
#line 324 "unicorn_http.rl"
|
3425
3414
|
{ write_cont_value(hp, buffer, p); }
|
3426
3415
|
goto st114;
|
3427
3416
|
tr182:
|
3428
|
-
#line
|
3417
|
+
#line 322 "unicorn_http.rl"
|
3429
3418
|
{ MARK(mark, p); }
|
3430
|
-
#line
|
3419
|
+
#line 323 "unicorn_http.rl"
|
3431
3420
|
{ write_value(hp, buffer, p); }
|
3432
3421
|
goto st114;
|
3433
3422
|
tr185:
|
3434
|
-
#line
|
3423
|
+
#line 323 "unicorn_http.rl"
|
3435
3424
|
{ write_value(hp, buffer, p); }
|
3436
3425
|
goto st114;
|
3437
3426
|
st114:
|
3438
3427
|
if ( ++p == pe )
|
3439
3428
|
goto _test_eof114;
|
3440
3429
|
case 114:
|
3441
|
-
#line
|
3430
|
+
#line 3431 "unicorn_http.c"
|
3442
3431
|
switch( (*p) ) {
|
3443
3432
|
case 9: goto st115;
|
3444
3433
|
case 10: goto tr167;
|
@@ -3467,14 +3456,14 @@ case 114:
|
|
3467
3456
|
goto tr169;
|
3468
3457
|
goto st0;
|
3469
3458
|
tr171:
|
3470
|
-
#line
|
3459
|
+
#line 322 "unicorn_http.rl"
|
3471
3460
|
{ MARK(mark, p); }
|
3472
3461
|
goto st115;
|
3473
3462
|
st115:
|
3474
3463
|
if ( ++p == pe )
|
3475
3464
|
goto _test_eof115;
|
3476
3465
|
case 115:
|
3477
|
-
#line
|
3466
|
+
#line 3467 "unicorn_http.c"
|
3478
3467
|
switch( (*p) ) {
|
3479
3468
|
case 9: goto tr171;
|
3480
3469
|
case 10: goto tr172;
|
@@ -3486,14 +3475,14 @@ case 115:
|
|
3486
3475
|
goto st0;
|
3487
3476
|
goto tr170;
|
3488
3477
|
tr170:
|
3489
|
-
#line
|
3478
|
+
#line 322 "unicorn_http.rl"
|
3490
3479
|
{ MARK(mark, p); }
|
3491
3480
|
goto st116;
|
3492
3481
|
st116:
|
3493
3482
|
if ( ++p == pe )
|
3494
3483
|
goto _test_eof116;
|
3495
3484
|
case 116:
|
3496
|
-
#line
|
3485
|
+
#line 3486 "unicorn_http.c"
|
3497
3486
|
switch( (*p) ) {
|
3498
3487
|
case 10: goto tr175;
|
3499
3488
|
case 13: goto tr176;
|
@@ -3506,35 +3495,35 @@ case 116:
|
|
3506
3495
|
goto st0;
|
3507
3496
|
goto st116;
|
3508
3497
|
tr173:
|
3509
|
-
#line
|
3498
|
+
#line 322 "unicorn_http.rl"
|
3510
3499
|
{ MARK(mark, p); }
|
3511
|
-
#line
|
3500
|
+
#line 324 "unicorn_http.rl"
|
3512
3501
|
{ write_cont_value(hp, buffer, p); }
|
3513
3502
|
goto st117;
|
3514
3503
|
tr176:
|
3515
|
-
#line
|
3504
|
+
#line 324 "unicorn_http.rl"
|
3516
3505
|
{ write_cont_value(hp, buffer, p); }
|
3517
3506
|
goto st117;
|
3518
3507
|
tr183:
|
3519
|
-
#line
|
3508
|
+
#line 322 "unicorn_http.rl"
|
3520
3509
|
{ MARK(mark, p); }
|
3521
|
-
#line
|
3510
|
+
#line 323 "unicorn_http.rl"
|
3522
3511
|
{ write_value(hp, buffer, p); }
|
3523
3512
|
goto st117;
|
3524
3513
|
tr186:
|
3525
|
-
#line
|
3514
|
+
#line 323 "unicorn_http.rl"
|
3526
3515
|
{ write_value(hp, buffer, p); }
|
3527
3516
|
goto st117;
|
3528
3517
|
st117:
|
3529
3518
|
if ( ++p == pe )
|
3530
3519
|
goto _test_eof117;
|
3531
3520
|
case 117:
|
3532
|
-
#line
|
3521
|
+
#line 3522 "unicorn_http.c"
|
3533
3522
|
if ( (*p) == 10 )
|
3534
3523
|
goto st114;
|
3535
3524
|
goto st0;
|
3536
3525
|
tr167:
|
3537
|
-
#line
|
3526
|
+
#line 389 "unicorn_http.rl"
|
3538
3527
|
{
|
3539
3528
|
cs = http_parser_first_final;
|
3540
3529
|
goto post_exec;
|
@@ -3544,7 +3533,7 @@ st124:
|
|
3544
3533
|
if ( ++p == pe )
|
3545
3534
|
goto _test_eof124;
|
3546
3535
|
case 124:
|
3547
|
-
#line
|
3536
|
+
#line 3537 "unicorn_http.c"
|
3548
3537
|
goto st0;
|
3549
3538
|
st118:
|
3550
3539
|
if ( ++p == pe )
|
@@ -3554,20 +3543,20 @@ case 118:
|
|
3554
3543
|
goto tr167;
|
3555
3544
|
goto st0;
|
3556
3545
|
tr169:
|
3557
|
-
#line
|
3546
|
+
#line 318 "unicorn_http.rl"
|
3558
3547
|
{ MARK(start.field, p); }
|
3559
|
-
#line
|
3548
|
+
#line 319 "unicorn_http.rl"
|
3560
3549
|
{ snake_upcase_char(deconst(p)); }
|
3561
3550
|
goto st119;
|
3562
3551
|
tr178:
|
3563
|
-
#line
|
3552
|
+
#line 319 "unicorn_http.rl"
|
3564
3553
|
{ snake_upcase_char(deconst(p)); }
|
3565
3554
|
goto st119;
|
3566
3555
|
st119:
|
3567
3556
|
if ( ++p == pe )
|
3568
3557
|
goto _test_eof119;
|
3569
3558
|
case 119:
|
3570
|
-
#line
|
3559
|
+
#line 3560 "unicorn_http.c"
|
3571
3560
|
switch( (*p) ) {
|
3572
3561
|
case 33: goto tr178;
|
3573
3562
|
case 58: goto tr179;
|
@@ -3593,18 +3582,18 @@ case 119:
|
|
3593
3582
|
goto tr178;
|
3594
3583
|
goto st0;
|
3595
3584
|
tr181:
|
3596
|
-
#line
|
3585
|
+
#line 322 "unicorn_http.rl"
|
3597
3586
|
{ MARK(mark, p); }
|
3598
3587
|
goto st120;
|
3599
3588
|
tr179:
|
3600
|
-
#line
|
3589
|
+
#line 321 "unicorn_http.rl"
|
3601
3590
|
{ hp->s.field_len = LEN(start.field, p); }
|
3602
3591
|
goto st120;
|
3603
3592
|
st120:
|
3604
3593
|
if ( ++p == pe )
|
3605
3594
|
goto _test_eof120;
|
3606
3595
|
case 120:
|
3607
|
-
#line
|
3596
|
+
#line 3597 "unicorn_http.c"
|
3608
3597
|
switch( (*p) ) {
|
3609
3598
|
case 9: goto tr181;
|
3610
3599
|
case 10: goto tr182;
|
@@ -3616,14 +3605,14 @@ case 120:
|
|
3616
3605
|
goto st0;
|
3617
3606
|
goto tr180;
|
3618
3607
|
tr180:
|
3619
|
-
#line
|
3608
|
+
#line 322 "unicorn_http.rl"
|
3620
3609
|
{ MARK(mark, p); }
|
3621
3610
|
goto st121;
|
3622
3611
|
st121:
|
3623
3612
|
if ( ++p == pe )
|
3624
3613
|
goto _test_eof121;
|
3625
3614
|
case 121:
|
3626
|
-
#line
|
3615
|
+
#line 3616 "unicorn_http.c"
|
3627
3616
|
switch( (*p) ) {
|
3628
3617
|
case 10: goto tr185;
|
3629
3618
|
case 13: goto tr186;
|
@@ -3764,7 +3753,7 @@ case 121:
|
|
3764
3753
|
_out: {}
|
3765
3754
|
}
|
3766
3755
|
|
3767
|
-
#line
|
3756
|
+
#line 463 "unicorn_http.rl"
|
3768
3757
|
post_exec: /* "_out:" also goes here */
|
3769
3758
|
if (hp->cs != http_parser_error)
|
3770
3759
|
hp->cs = cs;
|
@@ -3944,7 +3933,7 @@ static VALUE HttpParser_clear(VALUE self)
|
|
3944
3933
|
return HttpParser_init(self);
|
3945
3934
|
|
3946
3935
|
http_parser_init(hp);
|
3947
|
-
|
3936
|
+
rb_hash_clear(hp->env);
|
3948
3937
|
|
3949
3938
|
return self;
|
3950
3939
|
}
|
@@ -4273,6 +4262,7 @@ void Init_unicorn_http(void)
|
|
4273
4262
|
e414 = rb_define_class_under(mUnicorn, "RequestURITooLongError",
|
4274
4263
|
eHttpParserError);
|
4275
4264
|
|
4265
|
+
id_uminus = rb_intern("-@");
|
4276
4266
|
init_globals();
|
4277
4267
|
rb_define_alloc_func(cHttpParser, HttpParser_alloc);
|
4278
4268
|
rb_define_method(cHttpParser, "initialize", HttpParser_init, 0);
|
@@ -4323,5 +4313,7 @@ void Init_unicorn_http(void)
|
|
4323
4313
|
id_clear = rb_intern("clear");
|
4324
4314
|
#endif
|
4325
4315
|
id_is_chunked_p = rb_intern("is_chunked?");
|
4316
|
+
|
4317
|
+
init_epollexclusive(mUnicorn);
|
4326
4318
|
}
|
4327
4319
|
#undef SET_GLOBAL
|