wez Thu Feb 13 08:38:20 2003 EDT Modified files: /php4/ext/standard http_fopen_wrapper.c Log: Avoid problems with chunk_size and auto_detect_line_endings. Index: php4/ext/standard/http_fopen_wrapper.c diff -u php4/ext/standard/http_fopen_wrapper.c:1.59 php4/ext/standard/http_fopen_wrapper.c:1.60 --- php4/ext/standard/http_fopen_wrapper.c:1.59 Fri Feb 7 18:44:58 2003 +++ php4/ext/standard/http_fopen_wrapper.c Thu Feb 13 08:38:20 2003 @@ -18,7 +18,7 @@ | Wez Furlong <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: http_fopen_wrapper.c,v 1.59 2003/02/07 23:44:58 pollita Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.60 2003/02/13 13:38:20 wez Exp $ */ #include "php.h" #include "php_globals.h" @@ -100,6 +100,7 @@ char *http_header_line = NULL; char tmp_line[128]; size_t chunk_size = 0, file_size = 0; + int eol_detect; if (strchr(mode, 'a') || strchr(mode, '+') || strchr(mode, 'w')) { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "HTTP wrapper does not support writeable connections."); @@ -123,8 +124,14 @@ goto out; /* avoid buffering issues while reading header */ - chunk_size = php_stream_set_chunk_size(stream, 1); + if (options & STREAM_WILL_CAST) + chunk_size = php_stream_set_chunk_size(stream, 1); + /* avoid problems with auto-detecting when reading the headers -> the headers + * are always in canonical \r\n format */ + eol_detect = stream->flags & (PHP_STREAM_FLAG_DETECT_EOL | +PHP_STREAM_FLAG_EOL_MAC); + stream->flags &= ~(PHP_STREAM_FLAG_DETECT_EOL | PHP_STREAM_FLAG_EOL_MAC); + php_stream_context_set(stream, context); php_stream_notify_info(context, PHP_STREAM_NOTIFY_CONNECT, NULL, 0); @@ -400,7 +407,12 @@ stream->wrapperdata = response_header; php_stream_notify_progress_init(context, 0, file_size); /* Restore original chunk size now that we're done with headers */ - php_stream_set_chunk_size(stream, chunk_size); + if (options & STREAM_WILL_CAST) + php_stream_set_chunk_size(stream, chunk_size); + + /* restore the users auto-detect-line-endings setting */ + stream->flags |= eol_detect; + /* as far as streams are concerned, we are now at the start of * the stream */ stream->position = 0;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php