cvs: php4 /ext/standard http_fopen_wrapper.c
| From: | Stig Venaas | 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);
}