- Fixed bug #48182 (ssl handshake fails during asynchronous socket connection).
(Sriram Natarajan)
- Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick)
+- Fixed bug #43510 (stream_get_meta_data() does not return same mode as used
+ in fopen). (Jani)
- Fixed bug #42434 (ImageLine w/ antialias = 1px shorter). (wojjie at gmail dot
com, Kalle)
strlcat(scratch, " HTTP/1.0\r\n", scratch_len);
}
-
/* send it */
php_stream_write(stream, scratch, strlen(scratch));
stream->wrapperdata = response_header;
}
php_stream_notify_progress_init(context, 0, file_size);
+
/* Restore original chunk size now that we're done with headers */
if (options & STREAM_WILL_CAST)
php_stream_set_chunk_size(stream, chunk_size);
* the stream */
stream->position = 0;
+ /* restore mode */
+ strlcpy(stream->mode, mode, sizeof(stream->mode));
+
if (transfer_encoding) {
php_stream_filter_append(&stream->readfilters, transfer_encoding);
}
--- /dev/null
+--TEST--
+Bug #43510: stream_get_meta_data() does not return same mode as used in fopen
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+--FILE--
+<?php
+require 'server.inc';
+
+$responses = array(
+ "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
+ "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
+);
+
+$pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
+
+foreach(array('r', 'rb') as $mode) {
+ $fd = fopen('http://127.0.0.1:12342/', $mode, false);
+ $meta = stream_get_meta_data($fd);
+ var_dump($meta['mode']);
+ fclose($fd);
+}
+
+http_server_kill($pid);
+
+?>
+--EXPECT--
+string(1) "r"
+string(2) "rb"
+--TEST--
+Bug #43510: stream_get_meta_data() does not return same mode as used in fopen
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+--FILE--
+<?php
+require 'server.inc';
+
+$responses = array(
+ "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
+ "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
+);
+
+$pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
+
+foreach(array('r', 'rb') as $mode) {
+ $fd = fopen('http://127.0.0.1:12342/', $mode, false);
+ $meta = stream_get_meta_data($fd);
+ var_dump($meta['mode']);
+ fclose($fd);
+}
+
+http_server_kill($pid);
+
+?>
+--EXPECT--
+string(1) "r"
+string(2) "rb"