mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
properly set the pipe blocking option
This commit is contained in:
parent
1a5a4d546e
commit
d516a14fb9
2 changed files with 9 additions and 7 deletions
|
@ -400,17 +400,19 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char *pa
|
|||
if (stream == NULL) {
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
{
|
||||
zval *blocking_pipes = php_stream_context_get_option(context, "pipe", "blocking");
|
||||
if (blocking_pipes) {
|
||||
convert_to_long(blocking_pipes);
|
||||
php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, Z_LVAL_P(blocking_pipes), NULL);
|
||||
if (stream && context) {
|
||||
zval *blocking_pipes = php_stream_context_get_option(context, "pipe", "blocking");
|
||||
if (blocking_pipes) {
|
||||
convert_to_long(blocking_pipes);
|
||||
php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, Z_LVAL_P(blocking_pipes), NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return stream;
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -546,7 +546,6 @@ PHP_FUNCTION(proc_open)
|
|||
}
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, blocking_pipes, NULL);
|
||||
descriptors[ndesc].childend = dup_fd_as_handle((int)fd);
|
||||
if (descriptors[ndesc].childend == NULL) {
|
||||
php_error_docref(NULL, E_WARNING, "unable to dup File-Handle for descriptor %d", nindex);
|
||||
|
@ -941,6 +940,7 @@ PHP_FUNCTION(proc_open)
|
|||
#ifdef PHP_WIN32
|
||||
stream = php_stream_fopen_from_fd(_open_osfhandle((zend_intptr_t)descriptors[i].parentend,
|
||||
descriptors[i].mode_flags), mode_string, NULL);
|
||||
php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, blocking_pipes, NULL);
|
||||
#else
|
||||
stream = php_stream_fopen_from_fd(descriptors[i].parentend, mode_string, NULL);
|
||||
# if defined(F_SETFD) && defined(FD_CLOEXEC)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue