cvs: php4 /ext/standard http_fopen_wrapper.c

From: Date: Fri, 12 Jan 2001 20:49:25 +0000
Subject: cvs: php4 /ext/standard http_fopen_wrapper.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-3578@lists.php.net to get a copy of this message
venaas Fri Jan 12 12:49:25 2001 EDT Modified files: /php4/ext/standard http_fopen_wrapper.c Log: Follows redirects again, and $http_response_header now contains all headers with an empty string as delimiter @- Made fopen() of HTTP URL follow redirects, $http_response_header will @ contain all headers with empty string as delimiter (Stig Venaas) Index: php4/ext/standard/http_fopen_wrapper.c diff -u php4/ext/standard/http_fopen_wrapper.c:1.3 php4/ext/standard/http_fopen_wrapper.c:1.4 --- php4/ext/standard/http_fopen_wrapper.c:1.3 Fri Oct 27 18:31:56 2000 +++ php4/ext/standard/http_fopen_wrapper.c Fri Jan 12 12:49:25 2001 @@ -17,7 +17,7 @@ | Hartmut Holzgraefe <hholzgra@php.net> | +----------------------------------------------------------------------+ */ -/* $Id: http_fopen_wrapper.c,v 1.3 2000/10/28 01:31:56 zeev Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.4 2001/01/12 20:49:25 venaas Exp $ */ #include "php.h" #include "php_globals.h" @@ -263,26 +263,40 @@ } } } - { - ELS_FETCH(); - zend_hash_update(EG(active_symbol_table), "http_response_header", sizeof("http_response_header"), (void **) &response_header, sizeof(zval *), NULL); - } if (!reqok) { SOCK_FCLOSE(*socketd); *socketd = 0; free_url(resource); -#if 0 if (location[0] != '\0') { - return php_fopen_url_wrapper(location, mode, options, issock, socketd, opened_path); + zval **response_header_new, *entry, **entryp; + + fp = php_fopen_url_wrap_http(location, mode, options, issock, socketd, opened_path); + ELS_FETCH(); + if (zend_hash_find(EG(active_symbol_table), "http_response_header", sizeof("http_response_header"), (void **) &response_header_new) == SUCCESS) { + entryp = &entry; + MAKE_STD_ZVAL(entry); + ZVAL_EMPTY_STRING(entry); + zend_hash_next_index_insert(Z_ARRVAL_P(response_header), entryp, sizeof(zval *), NULL); + zend_hash_internal_pointer_reset(Z_ARRVAL_PP(response_header_new)); + while (zend_hash_get_current_data(Z_ARRVAL_PP(response_header_new), (void **)&entryp) == SUCCESS) { + zval_add_ref(entryp); + zend_hash_next_index_insert(Z_ARRVAL_P(response_header), entryp, sizeof(zval *), NULL); + zend_hash_move_forward(Z_ARRVAL_PP(response_header_new)); + } + } + goto out; } else { - return NULL; + fp = NULL; + goto out; } -#else - return NULL; -#endif } free_url(resource); *issock = 1; + out: + { + ELS_FETCH(); + ZEND_SET_SYMBOL(EG(active_symbol_table), "http_response_header", response_header); + } return (fp); }

« previous php.cvs (#3578) next »