I made a wrong assumption in the first patch and although it worked,
stream_set_write_buffer() did return an error.
This one is fixes the return value issue :
--- main/streams/xp_socket.c.orig 2007-12-01 16:56:29.000000000 +0100
+++ main/streams/xp_socket.c 2007-12-03 21:07:02.000000000 +0100
@@ -254,6 +254,7 @@
int oldmode, flags;
php_netstream_data_t *sock =
(php_netstream_data_t*)stream->abstract;
php_stream_xport_param *xparam;
+ size_t size;
switch(option) {
case PHP_STREAM_OPTION_CHECK_LIVENESS:
@@ -388,6 +389,14 @@
return
PHP_STREAM_OPTION_RETURN_NOTIMPL;
}
+ case PHP_STREAM_OPTION_WRITE_BUFFER:
+ if (ptrparam)
+ size = *(size_t *)ptrparam;
+ else
+ size = CHUNK_SIZE;
+ php_stream_set_chunk_size(stream, size);
+ return PHP_STREAM_OPTION_RETURN_OK;
+
default:
return PHP_STREAM_OPTION_RETURN_NOTIMPL;
}