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