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