@@ -356,6 +356,7 @@ static int check_http_host(char *target)
356
356
char * colon ;
357
357
358
358
if ((tmp = zend_hash_str_find (& EG (symbol_table ), ZEND_STRL ("_SERVER" ))) &&
359
+ Z_TYPE_P (tmp ) == IS_ARRAY &&
359
360
(host = zend_hash_str_find (Z_ARRVAL_P (tmp ), ZEND_STRL ("HTTP_HOST" ))) &&
360
361
Z_TYPE_P (host ) == IS_STRING ) {
361
362
host_tmp = zend_string_init (Z_STRVAL_P (host ), Z_STRLEN_P (host ), 0 );
@@ -521,7 +522,7 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
521
522
state_plain :
522
523
start = YYCURSOR ;
523
524
524
- #line 525 "ext/standard/url_scanner_ex.c"
525
+ #line 526 "ext/standard/url_scanner_ex.c"
525
526
{
526
527
YYCTYPE yych ;
527
528
static const unsigned char yybm [] = {
@@ -571,22 +572,22 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
571
572
if (yybm [0 + yych ] & 128 ) {
572
573
goto yy2 ;
573
574
}
574
- #line 528 "ext/standard/url_scanner_ex.re"
575
+ #line 529 "ext/standard/url_scanner_ex.re"
575
576
{ passthru (STD_ARGS ); goto state_plain ; }
576
- #line 577 "ext/standard/url_scanner_ex.c"
577
+ #line 578 "ext/standard/url_scanner_ex.c"
577
578
yy5 :
578
579
++ YYCURSOR ;
579
- #line 527 "ext/standard/url_scanner_ex.re"
580
+ #line 528 "ext/standard/url_scanner_ex.re"
580
581
{ passthru (STD_ARGS ); STATE = STATE_TAG ; goto state_tag ; }
581
- #line 582 "ext/standard/url_scanner_ex.c"
582
+ #line 583 "ext/standard/url_scanner_ex.c"
582
583
}
583
- #line 529 "ext/standard/url_scanner_ex.re"
584
+ #line 530 "ext/standard/url_scanner_ex.re"
584
585
585
586
586
587
state_tag :
587
588
start = YYCURSOR ;
588
589
589
- #line 590 "ext/standard/url_scanner_ex.c"
590
+ #line 591 "ext/standard/url_scanner_ex.c"
590
591
{
591
592
YYCTYPE yych ;
592
593
static const unsigned char yybm [] = {
@@ -629,21 +630,21 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
629
630
goto yy11 ;
630
631
}
631
632
++ YYCURSOR ;
632
- #line 535 "ext/standard/url_scanner_ex.re"
633
+ #line 536 "ext/standard/url_scanner_ex.re"
633
634
{ passthru (STD_ARGS ); goto state_plain_begin ; }
634
- #line 635 "ext/standard/url_scanner_ex.c"
635
+ #line 636 "ext/standard/url_scanner_ex.c"
635
636
yy11 :
636
637
++ YYCURSOR ;
637
638
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
638
639
yych = * YYCURSOR ;
639
640
if (yybm [0 + yych ] & 128 ) {
640
641
goto yy11 ;
641
642
}
642
- #line 534 "ext/standard/url_scanner_ex.re"
643
+ #line 535 "ext/standard/url_scanner_ex.re"
643
644
{ handle_tag (STD_ARGS ); /* Sets STATE */ ; passthru (STD_ARGS ); if (STATE == STATE_PLAIN ) goto state_plain ; else goto state_next_arg ; }
644
- #line 645 "ext/standard/url_scanner_ex.c"
645
+ #line 646 "ext/standard/url_scanner_ex.c"
645
646
}
646
- #line 536 "ext/standard/url_scanner_ex.re"
647
+ #line 537 "ext/standard/url_scanner_ex.re"
647
648
648
649
649
650
state_next_arg_begin :
@@ -652,7 +653,7 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
652
653
state_next_arg :
653
654
start = YYCURSOR ;
654
655
655
- #line 656 "ext/standard/url_scanner_ex.c"
656
+ #line 657 "ext/standard/url_scanner_ex.c"
656
657
{
657
658
YYCTYPE yych ;
658
659
static const unsigned char yybm [] = {
@@ -708,40 +709,40 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
708
709
yy16 :
709
710
++ YYCURSOR ;
710
711
yy17 :
711
- #line 547 "ext/standard/url_scanner_ex.re"
712
+ #line 548 "ext/standard/url_scanner_ex.re"
712
713
{ passthru (STD_ARGS ); goto state_plain_begin ; }
713
- #line 714 "ext/standard/url_scanner_ex.c"
714
+ #line 715 "ext/standard/url_scanner_ex.c"
714
715
yy18 :
715
716
++ YYCURSOR ;
716
717
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
717
718
yych = * YYCURSOR ;
718
719
if (yybm [0 + yych ] & 128 ) {
719
720
goto yy18 ;
720
721
}
721
- #line 545 "ext/standard/url_scanner_ex.re"
722
+ #line 546 "ext/standard/url_scanner_ex.re"
722
723
{ passthru (STD_ARGS ); goto state_next_arg ; }
723
- #line 724 "ext/standard/url_scanner_ex.c"
724
+ #line 725 "ext/standard/url_scanner_ex.c"
724
725
yy21 :
725
726
yych = * ++ YYCURSOR ;
726
727
if (yych != '>' ) goto yy17 ;
727
728
yy22 :
728
729
++ YYCURSOR ;
729
- #line 544 "ext/standard/url_scanner_ex.re"
730
+ #line 545 "ext/standard/url_scanner_ex.re"
730
731
{ passthru (STD_ARGS ); handle_form (STD_ARGS ); goto state_plain_begin ; }
731
- #line 732 "ext/standard/url_scanner_ex.c"
732
+ #line 733 "ext/standard/url_scanner_ex.c"
732
733
yy24 :
733
734
++ YYCURSOR ;
734
- #line 546 "ext/standard/url_scanner_ex.re"
735
+ #line 547 "ext/standard/url_scanner_ex.re"
735
736
{ -- YYCURSOR ; STATE = STATE_ARG ; goto state_arg ; }
736
- #line 737 "ext/standard/url_scanner_ex.c"
737
+ #line 738 "ext/standard/url_scanner_ex.c"
737
738
}
738
- #line 548 "ext/standard/url_scanner_ex.re"
739
+ #line 549 "ext/standard/url_scanner_ex.re"
739
740
740
741
741
742
state_arg :
742
743
start = YYCURSOR ;
743
744
744
- #line 745 "ext/standard/url_scanner_ex.c"
745
+ #line 746 "ext/standard/url_scanner_ex.c"
745
746
{
746
747
YYCTYPE yych ;
747
748
static const unsigned char yybm [] = {
@@ -786,27 +787,27 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
786
787
if (yych <= 'z' ) goto yy30 ;
787
788
yy28 :
788
789
++ YYCURSOR ;
789
- #line 554 "ext/standard/url_scanner_ex.re"
790
+ #line 555 "ext/standard/url_scanner_ex.re"
790
791
{ passthru (STD_ARGS ); STATE = STATE_NEXT_ARG ; goto state_next_arg ; }
791
- #line 792 "ext/standard/url_scanner_ex.c"
792
+ #line 793 "ext/standard/url_scanner_ex.c"
792
793
yy30 :
793
794
++ YYCURSOR ;
794
795
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
795
796
yych = * YYCURSOR ;
796
797
if (yybm [0 + yych ] & 128 ) {
797
798
goto yy30 ;
798
799
}
799
- #line 553 "ext/standard/url_scanner_ex.re"
800
+ #line 554 "ext/standard/url_scanner_ex.re"
800
801
{ passthru (STD_ARGS ); handle_arg (STD_ARGS ); STATE = STATE_BEFORE_VAL ; goto state_before_val ; }
801
- #line 802 "ext/standard/url_scanner_ex.c"
802
+ #line 803 "ext/standard/url_scanner_ex.c"
802
803
}
803
- #line 555 "ext/standard/url_scanner_ex.re"
804
+ #line 556 "ext/standard/url_scanner_ex.re"
804
805
805
806
806
807
state_before_val :
807
808
start = YYCURSOR ;
808
809
809
- #line 810 "ext/standard/url_scanner_ex.c"
810
+ #line 811 "ext/standard/url_scanner_ex.c"
810
811
{
811
812
YYCTYPE yych ;
812
813
static const unsigned char yybm [] = {
@@ -849,9 +850,9 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
849
850
if (yych == '=' ) goto yy38 ;
850
851
++ YYCURSOR ;
851
852
yy36 :
852
- #line 561 "ext/standard/url_scanner_ex.re"
853
+ #line 562 "ext/standard/url_scanner_ex.re"
853
854
{ -- YYCURSOR ; goto state_next_arg_begin ; }
854
- #line 855 "ext/standard/url_scanner_ex.c"
855
+ #line 856 "ext/standard/url_scanner_ex.c"
855
856
yy37 :
856
857
yych = * (YYMARKER = ++ YYCURSOR );
857
858
if (yych == ' ' ) goto yy41 ;
@@ -863,9 +864,9 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
863
864
if (yybm [0 + yych ] & 128 ) {
864
865
goto yy38 ;
865
866
}
866
- #line 560 "ext/standard/url_scanner_ex.re"
867
+ #line 561 "ext/standard/url_scanner_ex.re"
867
868
{ passthru (STD_ARGS ); STATE = STATE_VAL ; goto state_val ; }
868
- #line 869 "ext/standard/url_scanner_ex.c"
869
+ #line 870 "ext/standard/url_scanner_ex.c"
869
870
yy41 :
870
871
++ YYCURSOR ;
871
872
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
@@ -875,14 +876,14 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
875
876
YYCURSOR = YYMARKER ;
876
877
goto yy36 ;
877
878
}
878
- #line 562 "ext/standard/url_scanner_ex.re"
879
+ #line 563 "ext/standard/url_scanner_ex.re"
879
880
880
881
881
882
882
883
state_val :
883
884
start = YYCURSOR ;
884
885
885
- #line 886 "ext/standard/url_scanner_ex.c"
886
+ #line 887 "ext/standard/url_scanner_ex.c"
886
887
{
887
888
YYCTYPE yych ;
888
889
static const unsigned char yybm [] = {
@@ -935,15 +936,15 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
935
936
if (yybm [0 + yych ] & 32 ) {
936
937
goto yy46 ;
937
938
}
938
- #line 570 "ext/standard/url_scanner_ex.re"
939
+ #line 571 "ext/standard/url_scanner_ex.re"
939
940
{ handle_val (STD_ARGS , 0 , ' ' ); goto state_next_arg_begin ; }
940
- #line 941 "ext/standard/url_scanner_ex.c"
941
+ #line 942 "ext/standard/url_scanner_ex.c"
941
942
yy49 :
942
943
++ YYCURSOR ;
943
944
yy50 :
944
- #line 571 "ext/standard/url_scanner_ex.re"
945
+ #line 572 "ext/standard/url_scanner_ex.re"
945
946
{ passthru (STD_ARGS ); goto state_next_arg_begin ; }
946
- #line 947 "ext/standard/url_scanner_ex.c"
947
+ #line 948 "ext/standard/url_scanner_ex.c"
947
948
yy51 :
948
949
yych = * (YYMARKER = ++ YYCURSOR );
949
950
if (yych == '>' ) goto yy50 ;
@@ -966,9 +967,9 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
966
967
goto yy50 ;
967
968
yy56 :
968
969
++ YYCURSOR ;
969
- #line 568 "ext/standard/url_scanner_ex.re"
970
+ #line 569 "ext/standard/url_scanner_ex.re"
970
971
{ handle_val (STD_ARGS , 1 , '"' ); goto state_next_arg_begin ; }
971
- #line 972 "ext/standard/url_scanner_ex.c"
972
+ #line 973 "ext/standard/url_scanner_ex.c"
972
973
yy58 :
973
974
++ YYCURSOR ;
974
975
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
@@ -979,11 +980,11 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
979
980
}
980
981
if (yych >= '(' ) goto yy55 ;
981
982
++ YYCURSOR ;
982
- #line 569 "ext/standard/url_scanner_ex.re"
983
+ #line 570 "ext/standard/url_scanner_ex.re"
983
984
{ handle_val (STD_ARGS , 1 , '\'' ); goto state_next_arg_begin ; }
984
- #line 985 "ext/standard/url_scanner_ex.c"
985
+ #line 986 "ext/standard/url_scanner_ex.c"
985
986
}
986
- #line 572 "ext/standard/url_scanner_ex.re"
987
+ #line 573 "ext/standard/url_scanner_ex.re"
987
988
988
989
989
990
stop :
0 commit comments