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