wez Sat Sep 7 16:58:30 2002 EDT Modified files: /php4/ext/standard file.c http_fopen_wrapper.c /php4/main php_streams.h streams.c Log: Fix a couple of bad pointer indirections (oops). Lets stick to a single category of "http" for the "user_agent" context override. Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.252 php4/ext/standard/file.c:1.253 --- php4/ext/standard/file.c:1.252 Sat Sep 7 11:45:29 2002 +++ php4/ext/standard/file.c Sat Sep 7 16:58:30 2002 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.252 2002/09/07 15:45:29 sterling Exp $ */ +/* $Id: file.c,v 1.253 2002/09/07 20:58:30 wez Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -732,6 +732,7 @@ array_init(return_value); *return_value = *context->options; zval_copy_ctor(return_value); + } /* }}} */ @@ -766,7 +767,6 @@ php_stream_context_set_option(context, wrappername, optionname, zvalue); RETVAL_TRUE; } - } /* }}} */ @@ -867,8 +867,7 @@ RETURN_FALSE; } if (zcontext) { - context = (php_stream_context*)zend_fetch_resource(&zcontext TSRMLS_CC, -1, "Stream-Context", NULL, 1, le_stream_context); - ZEND_VERIFY_RESOURCE(context); + ZEND_FETCH_RESOURCE(context, php_stream_context*, &zcontext, -1, +"stream-context", le_stream_context); } stream = php_stream_open_wrapper_ex(filename, mode, Index: php4/ext/standard/http_fopen_wrapper.c diff -u php4/ext/standard/http_fopen_wrapper.c:1.44 php4/ext/standard/http_fopen_wrapper.c:1.45 --- php4/ext/standard/http_fopen_wrapper.c:1.44 Sat Sep 7 11:55:04 2002 +++ php4/ext/standard/http_fopen_wrapper.c Sat Sep 7 16:58:30 2002 @@ -18,7 +18,7 @@ | Wez Furlong <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: http_fopen_wrapper.c,v 1.44 2002/09/07 15:55:04 sterling Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.45 2002/09/07 20:58:30 wez Exp $ */ #include "php.h" #include "php_globals.h" @@ -91,7 +91,7 @@ char *scratch = NULL; char *tmp = NULL; char *ua_str = NULL; - zval **ua_zval; + zval **ua_zval = NULL; int scratch_len = 0; int body = 0; char location[HTTP_HEADER_BLOCK_SIZE]; @@ -201,8 +201,7 @@ 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", &ua_zval) == +SUCCESS) { ua_str = Z_STRVAL_PP(ua_zval); } else if (BG(user_agent)) { ua_str = BG(user_agent); Index: php4/main/php_streams.h diff -u php4/main/php_streams.h:1.42 php4/main/php_streams.h:1.43 --- php4/main/php_streams.h:1.42 Thu Sep 5 10:25:07 2002 +++ php4/main/php_streams.h Sat Sep 7 16:58:30 2002 @@ -490,7 +490,7 @@ PHPAPI void php_stream_context_free(php_stream_context *context); PHPAPI php_stream_context *php_stream_context_alloc(void); PHPAPI int php_stream_context_get_option(php_stream_context *context, - const char *wrappername, const char *optionname, zval **optionvalue); + const char *wrappername, const char *optionname, zval ***optionvalue); PHPAPI int php_stream_context_set_option(php_stream_context *context, const char *wrappername, const char *optionname, zval *optionvalue); Index: php4/main/streams.c diff -u php4/main/streams.c:1.73 php4/main/streams.c:1.74 --- php4/main/streams.c:1.73 Sun Aug 25 08:10:17 2002 +++ php4/main/streams.c Sat Sep 7 16:58:30 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.73 2002/08/25 12:10:17 wez Exp $ */ +/* $Id: streams.c,v 1.74 2002/09/07 20:58:30 wez Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1829,29 +1829,30 @@ } PHPAPI int php_stream_context_get_option(php_stream_context *context, - const char *wrappername, const char *optionname, zval **optionvalue) + const char *wrappername, const char *optionname, zval ***optionvalue) { zval **wrapperhash; if (FAILURE == zend_hash_find(Z_ARRVAL_P(context->options), (char*)wrappername, strlen(wrappername)+1, (void**)&wrapperhash)) return FAILURE; - - return zend_hash_find(Z_ARRVAL_PP(wrapperhash), (char*)optionname, strlen(optionname)+1, (void**)&optionvalue); + return zend_hash_find(Z_ARRVAL_PP(wrapperhash), (char*)optionname, +strlen(optionname)+1, (void**)optionvalue); } PHPAPI int php_stream_context_set_option(php_stream_context *context, const char *wrappername, const char *optionname, zval *optionvalue) { zval **wrapperhash; + zval *category; if (FAILURE == zend_hash_find(Z_ARRVAL_P(context->options), (char*)wrappername, strlen(wrappername)+1, (void**)&wrapperhash)) { - MAKE_STD_ZVAL(*wrapperhash); - array_init(*wrapperhash); - if (FAILURE == zend_hash_update(Z_ARRVAL_P(context->options), (char*)wrappername, strlen(wrappername)+1, (void**)wrapperhash, sizeof(zval *), NULL)) + MAKE_STD_ZVAL(category); + array_init(category); + if (FAILURE == zend_hash_update(Z_ARRVAL_P(context->options), +(char*)wrappername, strlen(wrappername)+1, (void**)&category, sizeof(zval *), NULL)) return FAILURE; ZVAL_ADDREF(optionvalue); + wrapperhash = &category; } return zend_hash_update(Z_ARRVAL_PP(wrapperhash), (char*)optionname, strlen(optionname)+1, (void**)&optionvalue, sizeof(zval *), NULL); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php