wez Thu Dec 19 15:23:51 2002 EDT
Modified files:
/php4/ext/standard exec.c
/php4/main streams.c
Log:
Correct mistake introduced by my last commit on these files;
*_from_pipe() is for process-pipes created by fopen, not generic pipes
created from proc_open().
Correctly implemented the fifo/pipe check for *_from_file() and it seems
to be working correctly now.
Index: php4/ext/standard/exec.c
diff -u php4/ext/standard/exec.c:1.86 php4/ext/standard/exec.c:1.87
--- php4/ext/standard/exec.c:1.86 Thu Dec 12 12:51:25 2002
+++ php4/ext/standard/exec.c Thu Dec 19 15:23:50 2002
@@ -15,7 +15,7 @@
| Author: Rasmus Lerdorf |
+----------------------------------------------------------------------+
*/
-/* $Id: exec.c,v 1.86 2002/12/12 17:51:25 wez Exp $ */
+/* $Id: exec.c,v 1.87 2002/12/19 20:23:50 wez Exp $ */
#include <stdio.h>
#include "php.h"
@@ -976,7 +976,7 @@
fp = fdopen(descriptors[i].parentend, mode_string);
#endif
if (fp) {
- stream = php_stream_fopen_from_pipe(fp,
mode_string);
+ stream = php_stream_fopen_from_file(fp,
+mode_string);
if (stream) {
zval *retfp;
Index: php4/main/streams.c
diff -u php4/main/streams.c:1.135 php4/main/streams.c:1.136
--- php4/main/streams.c:1.135 Thu Dec 12 12:51:25 2002
+++ php4/main/streams.c Thu Dec 19 15:23:50 2002
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.135 2002/12/12 17:51:25 wez Exp $ */
+/* $Id: streams.c,v 1.136 2002/12/19 20:23:50 wez Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -1298,6 +1298,7 @@
PHPAPI php_stream *_php_stream_fopen_from_file(FILE *file, const char *mode
STREAMS_DC TSRMLS_DC)
{
php_stdio_stream_data *self;
+ php_stream *stream;
self = emalloc_rel_orig(sizeof(*self));
self->file = file;
@@ -1314,7 +1315,13 @@
}
#endif
- return php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode);
+ stream = php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode);
+
+ if (stream && self->is_pipe) {
+ stream->flags |= PHP_STREAM_FLAG_NO_SEEK;
+ }
+
+ return stream;
}
PHPAPI php_stream *_php_stream_fopen_from_pipe(FILE *file, const char *mode
STREAMS_DC TSRMLS_DC)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php