]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4' into PHP-8.0
authorChristoph M. Becker <cmbecker69@gmx.de>
Mon, 8 Mar 2021 13:39:38 +0000 (14:39 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Mon, 8 Mar 2021 13:51:45 +0000 (14:51 +0100)
* PHP-7.4:
  Fix #80838: HTTP wrapper waits for HTTP 1 response after HTTP 101

1  2 
NEWS
ext/standard/http_fopen_wrapper.c
ext/standard/tests/http/bug80838.phpt

diff --cc NEWS
index c5d3f606ce90fbf626f55b8fd3e2c4382e280f78,751b79be6939033542a47ab98271f88ea1ad1030..46bf8239aa32e087f47a6e400c8ecc8d6bbf03f4
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -26,12 -28,10 +26,14 @@@ PH
    . Fixed bug #80771 (phpinfo(INFO_CREDITS) displays nothing in CLI). (cmb)
    . Fixed bug #78719 (http wrapper silently ignores long Location headers).
      (cmb)
+   . Fixed bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101).
+     (manuelm)
  
 -04 Mar 2021, php 7.4.16
 +- Zip:
 +  . Fixed bug #80825 (ZipArchive::isCompressionMethodSupported does not exist).
 +    (cmb)
 +
 +18 Feb 2021, PHP 8.0.3
  
  - Core:
    . Fixed #80706 (mail(): Headers after Bcc headers may be ignored). (cmb)
Simple merge
index 0000000000000000000000000000000000000000,2b81e042bba578841bba47fe65cc0a2a48851493..66f3113e1a46d7df1156ad651be47777346c84e2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,41 +1,41 @@@
 -<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+ --TEST--
+ Bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101)
+ --INI--
+ allow_url_fopen=1
+ --SKIPIF--
 -$pid = http_server('tcp://127.0.0.1:12342', $responses);
++<?php require 'server.inc'; http_server_skipif(); ?>
+ --FILE--
+ <?php
+ require 'server.inc';
+ $responses = [
+   "data://text/plain,HTTP/1.1 101 Switching Protocols\r\nHeader1: Value1\r\nHeader2: Value2\r\n\r\n"
+     . "Hello from another protocol"
+ ];
 -$fd = fopen('http://127.0.0.1:12342/', 'rb', false, $ctx);
++['pid' => $pid, 'uri' => $uri] = http_server($responses);
+ $options = [
+   'http' => [
+     'ignore_errors' => true
+   ],
+ ];
+ $ctx = stream_context_create($options);
++$fd = fopen($uri, 'rb', false, $ctx);
+ fclose($fd);
+ var_dump($http_response_header);
+ http_server_kill($pid);
+ ?>
+ --EXPECT--
+ array(3) {
+   [0]=>
+   string(32) "HTTP/1.1 101 Switching Protocols"
+   [1]=>
+   string(15) "Header1: Value1"
+   [2]=>
+   string(15) "Header2: Value2"
+ }