@@ -459,41 +459,76 @@ static php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper,
459
459
strip_header (user_headers , t , "content-type:" );
460
460
}
461
461
462
- if ((s = strstr (t , "user-agent:" )) &&
463
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
464
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
465
- have_header |= HTTP_HEADER_USER_AGENT ;
462
+ s = t ;
463
+ while ((s = strstr (s , "user-agent:" ))) {
464
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
465
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
466
+ have_header |= HTTP_HEADER_USER_AGENT ;
467
+ break ;
468
+ }
469
+ s ++ ;
466
470
}
467
- if ((s = strstr (t , "host:" )) &&
468
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
469
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
470
- have_header |= HTTP_HEADER_HOST ;
471
+
472
+ s = t ;
473
+ while ((s = strstr (s , "host:" ))) {
474
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
475
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
476
+ have_header |= HTTP_HEADER_HOST ;
477
+ break ;
478
+ }
479
+ s ++ ;
471
480
}
472
- if ((s = strstr (t , "from:" )) &&
473
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
474
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
475
- have_header |= HTTP_HEADER_FROM ;
481
+
482
+ s = t ;
483
+ while ((s = strstr (s , "from:" ))) {
484
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
485
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
486
+ have_header |= HTTP_HEADER_FROM ;
487
+ break ;
476
488
}
477
- if ((s = strstr (t , "authorization:" )) &&
478
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
479
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
480
- have_header |= HTTP_HEADER_AUTH ;
489
+ s ++ ;
481
490
}
482
- if ((s = strstr (t , "content-length:" )) &&
483
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
484
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
485
- have_header |= HTTP_HEADER_CONTENT_LENGTH ;
491
+
492
+ s = t ;
493
+ while ((s = strstr (s , "authorization:" ))) {
494
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
495
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
496
+ have_header |= HTTP_HEADER_AUTH ;
497
+ break ;
498
+ }
499
+ s ++ ;
486
500
}
487
- if ((s = strstr (t , "content-type:" )) &&
488
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
489
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
490
- have_header |= HTTP_HEADER_TYPE ;
501
+
502
+ s = t ;
503
+ while ((s = strstr (s , "content-length:" ))) {
504
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
505
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
506
+ have_header |= HTTP_HEADER_CONTENT_LENGTH ;
507
+ break ;
508
+ }
509
+ s ++ ;
491
510
}
492
- if ((s = strstr (t , "connection:" )) &&
493
- (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
494
- * (s - 1 ) == '\t' || * (s - 1 ) == ' ' )) {
495
- have_header |= HTTP_HEADER_CONNECTION ;
511
+
512
+ s = t ;
513
+ while ((s = strstr (s , "content-type:" ))) {
514
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
515
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
516
+ have_header |= HTTP_HEADER_TYPE ;
517
+ break ;
518
+ }
519
+ s ++ ;
496
520
}
521
+
522
+ s = t ;
523
+ while ((s = strstr (s , "connection:" ))) {
524
+ if (s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
525
+ * (s - 1 ) == '\t' || * (s - 1 ) == ' ' ) {
526
+ have_header |= HTTP_HEADER_CONNECTION ;
527
+ break ;
528
+ }
529
+ s ++ ;
530
+ }
531
+
497
532
/* remove Proxy-Authorization header */
498
533
if (use_proxy && use_ssl && (s = strstr (t , "proxy-authorization:" )) &&
499
534
(s == t || * (s - 1 ) == '\r' || * (s - 1 ) == '\n' ||
0 commit comments