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