sterling Sat Sep 7 11:55:05 2002 EDT Modified files: /php4/ext/standard http_fopen_wrapper.c Log: commit the correct/up-to-date version Index: php4/ext/standard/http_fopen_wrapper.c diff -u php4/ext/standard/http_fopen_wrapper.c:1.43 php4/ext/standard/http_fopen_wrapper.c:1.44 --- php4/ext/standard/http_fopen_wrapper.c:1.43 Sat Sep 7 11:45:29 2002 +++ php4/ext/standard/http_fopen_wrapper.c Sat Sep 7 11:55:04 2002 @@ -18,12 +18,14 @@ | Wez Furlong <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: http_fopen_wrapper.c,v 1.43 2002/09/07 15:45:29 sterling Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.44 2002/09/07 15:55:04 sterling Exp $ */ #include "php.h" #include "php_globals.h" #include "php_streams.h" #include "php_network.h" +#include "php_ini.h" +#include "ext/standard/basic_functions.h" #include <stdio.h> #include <stdlib.h> @@ -199,8 +201,8 @@ php_stream_write(stream, scratch, strlen(scratch)); if (context && - php_stream_context_get_option(context, "http", "user_agent", (zval **) &ua_zval) == FAILURE && - php_stream_context_get_option(context, "https", "user_agent", (zval **) &ua_zval) == FAILURE) { + php_stream_context_get_option(context, "http", "user_agent", (zval **) +&ua_zval) == FAILURE && + php_stream_context_get_option(context, "https", "user_agent", (zval **) +&ua_zval) == FAILURE) { ua_str = Z_STRVAL_PP(ua_zval); } else if (BG(user_agent)) { ua_str = BG(user_agent); @@ -225,7 +227,7 @@ } } - php_stream_write_string(stream, "\r\n"); + php_stream_write(stream, "\r\n", sizeof("\r\n")-1); location[0] = '\0'; @@ -270,64 +272,66 @@ } } - /* read past HTTP headers */ + if( reqok ) { + /* read past HTTP headers */ - http_header_line = emalloc(HTTP_HEADER_BLOCK_SIZE); + http_header_line = emalloc(HTTP_HEADER_BLOCK_SIZE); - while (!body && !php_stream_eof(stream)) { + while (!body && !php_stream_eof(stream)) { - if (php_stream_gets(stream, http_header_line, HTTP_HEADER_BLOCK_SIZE-1) != NULL) { - char *p; - int found_eol = 0; - int http_header_line_length; + if (php_stream_gets(stream, http_header_line, +HTTP_HEADER_BLOCK_SIZE-1) != NULL) { + char *p; + int found_eol = 0; + int http_header_line_length; - http_header_line[HTTP_HEADER_BLOCK_SIZE-1] = '\0'; - p = http_header_line; - while(*p) { - while(*p == '\n' || *p == '\r') { - *p = '\0'; - p--; - found_eol = 1; + http_header_line[HTTP_HEADER_BLOCK_SIZE-1] = '\0'; + p = http_header_line; + while(*p) { + while(*p == '\n' || *p == '\r') { + *p = '\0'; + p--; + found_eol = 1; + } + if (found_eol) + break; + p++; } - if (found_eol) - break; - p++; - } - http_header_line_length = p-http_header_line+1; + http_header_line_length = p-http_header_line+1; - if (!strncasecmp(http_header_line, "Location: ", 10)) { - strlcpy(location, http_header_line + 10, sizeof(location)); - } else if (!strncasecmp(http_header_line, "Content-Type: ", 14)) { - php_stream_notify_info(context, PHP_STREAM_NOTIFY_MIME_TYPE_IS, http_header_line + 14, 0); - } else if (!strncasecmp(http_header_line, "Content-Length: ", 16)) { - file_size = atoi(http_header_line + 16); - php_stream_notify_file_size(context, file_size, http_header_line, 0); - } + if (!strncasecmp(http_header_line, "Location: ", 10)) { + strlcpy(location, http_header_line + 10, +sizeof(location)); + } else if (!strncasecmp(http_header_line, +"Content-Type: ", 14)) { + php_stream_notify_info(context, +PHP_STREAM_NOTIFY_MIME_TYPE_IS, http_header_line + 14, 0); + } else if (!strncasecmp(http_header_line, +"Content-Length: ", 16)) { + file_size = atoi(http_header_line + 16); + php_stream_notify_file_size(context, +file_size, http_header_line, 0); + } + if (http_header_line[0] == '\0') + body = 1; + else { + zval *http_header; - if (http_header_line[0] == '\0') - body = 1; - else { - zval *http_header; - - MAKE_STD_ZVAL(http_header); + MAKE_STD_ZVAL(http_header); - ZVAL_STRINGL(http_header, http_header_line, http_header_line_length, 1); + ZVAL_STRINGL(http_header, http_header_line, +http_header_line_length, 1); - zend_hash_next_index_insert(Z_ARRVAL_P(response_header), &http_header, sizeof(zval *), NULL); + +zend_hash_next_index_insert(Z_ARRVAL_P(response_header), &http_header, sizeof(zval +*), NULL); + } } + else + break; } - else - break; - } - - if (!reqok) { - + } + + if (!reqok) { if (location[0] != '\0') php_stream_notify_info(context, PHP_STREAM_NOTIFY_REDIRECTED, location, 0); php_stream_close(stream); stream = NULL; + zval_dtor(response_header); + FREE_ZVAL(response_header); if (location[0] != '\0') {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php