mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-26 09:46:09 +00:00
- Fix patch for php-5.2.1
This commit is contained in:
parent
ba7bd679d1
commit
4d7e6a521a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=184716
@ -1,48 +0,0 @@
|
||||
--- interface.c.orig Tue Dec 5 16:50:11 2006
|
||||
+++ interface.c Tue Dec 5 16:50:25 2006
|
||||
@@ -369,7 +369,9 @@
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_FTPAPPEND);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_NETRC);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_FOLLOWLOCATION);
|
||||
+#if CURLOPT_FTPASCII != 0
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_FTPASCII);
|
||||
+#endif
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_PUT);
|
||||
#if CURLOPT_MUTE != 0
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_MUTE);
|
||||
@@ -409,7 +411,9 @@
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_FILETIME);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_WRITEFUNCTION);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_READFUNCTION);
|
||||
+#if CURLOPT_PASSWDFUNCTION != 0
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_PASSWDFUNCTION);
|
||||
+#endif
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_HEADERFUNCTION);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_MAXREDIRS);
|
||||
REGISTER_CURL_CONSTANT(CURLOPT_MAXCONNECTS);
|
||||
@@ -1158,11 +1162,13 @@
|
||||
dupch->handlers->read->fp = ch->handlers->read->fp;
|
||||
dupch->handlers->read->fd = ch->handlers->read->fd;
|
||||
|
||||
+#if CURLOPT_PASSWDFUNCTION != 0
|
||||
if (ch->handlers->passwd) {
|
||||
zval_add_ref(&ch->handlers->passwd);
|
||||
dupch->handlers->passwd = ch->handlers->passwd;
|
||||
curl_easy_setopt(ch->cp, CURLOPT_PASSWDDATA, (void *) dupch);
|
||||
}
|
||||
+#endif
|
||||
if (ch->handlers->write->func_name) {
|
||||
zval_add_ref(&ch->handlers->write->func_name);
|
||||
dupch->handlers->write->func_name = ch->handlers->write->func_name;
|
||||
@@ -1915,9 +1921,11 @@
|
||||
if (ch->handlers->write_header->func_name) {
|
||||
zval_ptr_dtor(&ch->handlers->write_header->func_name);
|
||||
}
|
||||
+#if CURLOPT_PASSWDFUNCTION != 0
|
||||
if (ch->handlers->passwd) {
|
||||
zval_ptr_dtor(&ch->handlers->passwd);
|
||||
}
|
||||
+#endif
|
||||
if (ch->header.str_len > 0) {
|
||||
efree(ch->header.str);
|
||||
}
|
@ -1,271 +0,0 @@
|
||||
# Obtained from PHP_5_2 CVS in 20061214
|
||||
#
|
||||
# php_encoding.c:
|
||||
#
|
||||
# Fixed decoding list of arrays (related to bug #39121)
|
||||
# Fixed bug #38536 (SOAP returns an array of values instead of an object)
|
||||
# Fixed bug #39454 (Returning a SOAP array segfaults PHP)
|
||||
#
|
||||
# php_http.c:
|
||||
#
|
||||
# Replace non-threadsafe rand() with php_rand_r()
|
||||
#
|
||||
# php_packet_soap.c:
|
||||
#
|
||||
# Fixed bug #39121 (Incorrect return array handling in non-wsdl soap client)
|
||||
#
|
||||
# php_sdl.c:
|
||||
#
|
||||
# Small hash table optimization
|
||||
#
|
||||
Index: php_encoding.c
|
||||
===================================================================
|
||||
RCS file: /repository/php-src/ext/soap/php_encoding.c,v
|
||||
retrieving revision 1.103.2.21.2.13
|
||||
retrieving revision 1.103.2.21.2.16
|
||||
diff -u -r1.103.2.21.2.13 -r1.103.2.21.2.16
|
||||
--- php_encoding.c 24 Oct 2006 05:20:50 -0000 1.103.2.21.2.13
|
||||
+++ php_encoding.c 10 Nov 2006 15:05:22 -0000 1.103.2.21.2.16
|
||||
@@ -1102,23 +1102,23 @@
|
||||
}
|
||||
add_string_to_string(val, val, val2);
|
||||
zval_ptr_dtor(&val2);
|
||||
- node = node->next;
|
||||
+ node = node->next;
|
||||
}
|
||||
}
|
||||
if (any == NULL) {
|
||||
any = val;
|
||||
} else {
|
||||
if (Z_TYPE_P(any) != IS_ARRAY) {
|
||||
- /* Convert into array */
|
||||
- zval *arr;
|
||||
+ /* Convert into array */
|
||||
+ zval *arr;
|
||||
|
||||
- MAKE_STD_ZVAL(arr);
|
||||
- array_init(arr);
|
||||
- add_next_index_zval(arr, any);
|
||||
- any = arr;
|
||||
- }
|
||||
- /* Add array element */
|
||||
- add_next_index_zval(any, val);
|
||||
+ MAKE_STD_ZVAL(arr);
|
||||
+ array_init(arr);
|
||||
+ add_next_index_zval(arr, any);
|
||||
+ any = arr;
|
||||
+ }
|
||||
+ /* Add array element */
|
||||
+ add_next_index_zval(any, val);
|
||||
}
|
||||
}
|
||||
node = node->next;
|
||||
@@ -1137,13 +1137,14 @@
|
||||
|
||||
if (node) {
|
||||
zval *val;
|
||||
+ xmlNodePtr r_node;
|
||||
|
||||
- node = check_and_resolve_href(node);
|
||||
- if (node && node->children && node->children->content) {
|
||||
- if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)node->children->content) != 0) {
|
||||
- soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, node->children->content);
|
||||
+ r_node = check_and_resolve_href(node);
|
||||
+ if (r_node && r_node->children && r_node->children->content) {
|
||||
+ if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)r_node->children->content) != 0) {
|
||||
+ soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, r_node->children->content);
|
||||
}
|
||||
- val = master_to_zval(model->u.element->encode, node);
|
||||
+ val = master_to_zval(model->u.element->encode, r_node);
|
||||
} else if (model->u.element->fixed) {
|
||||
xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS"));
|
||||
xmlNodeSetContent(dummy, BAD_CAST(model->u.element->fixed));
|
||||
@@ -1155,7 +1156,7 @@
|
||||
val = master_to_zval(model->u.element->encode, dummy);
|
||||
xmlFreeNode(dummy);
|
||||
} else {
|
||||
- val = master_to_zval(model->u.element->encode, node);
|
||||
+ val = master_to_zval(model->u.element->encode, r_node);
|
||||
}
|
||||
if ((node = get_node(node->next, model->u.element->name)) != NULL) {
|
||||
zval *array;
|
||||
@@ -1378,22 +1379,31 @@
|
||||
|
||||
prop = get_zval_property(ret, (char*)trav->name TSRMLS_CC);
|
||||
if (!prop) {
|
||||
- set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC);
|
||||
+ if (!trav->next || !get_node(trav->next, (char*)trav->name)) {
|
||||
+ set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC);
|
||||
+ } else {
|
||||
+ zval *arr;
|
||||
+
|
||||
+ MAKE_STD_ZVAL(arr);
|
||||
+ array_init(arr);
|
||||
+ add_next_index_zval(arr, tmpVal);
|
||||
+ set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC);
|
||||
+ }
|
||||
} else {
|
||||
- /* Property already exist - make array */
|
||||
- if (Z_TYPE_P(prop) != IS_ARRAY) {
|
||||
- /* Convert into array */
|
||||
- zval *arr;
|
||||
-
|
||||
- MAKE_STD_ZVAL(arr);
|
||||
- array_init(arr);
|
||||
- prop->refcount++;
|
||||
- add_next_index_zval(arr, prop);
|
||||
- set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC);
|
||||
- prop = arr;
|
||||
- }
|
||||
- /* Add array element */
|
||||
- add_next_index_zval(prop, tmpVal);
|
||||
+ /* Property already exist - make array */
|
||||
+ if (Z_TYPE_P(prop) != IS_ARRAY) {
|
||||
+ /* Convert into array */
|
||||
+ zval *arr;
|
||||
+
|
||||
+ MAKE_STD_ZVAL(arr);
|
||||
+ array_init(arr);
|
||||
+ prop->refcount++;
|
||||
+ add_next_index_zval(arr, prop);
|
||||
+ set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC);
|
||||
+ prop = arr;
|
||||
+ }
|
||||
+ /* Add array element */
|
||||
+ add_next_index_zval(prop, tmpVal);
|
||||
}
|
||||
}
|
||||
trav = trav->next;
|
||||
@@ -2013,6 +2023,7 @@
|
||||
zend_hash_find(sdl_type->attributes, SOAP_1_1_ENC_NAMESPACE":arrayType",
|
||||
sizeof(SOAP_1_1_ENC_NAMESPACE":arrayType"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType"), (void **)&ext) == SUCCESS) {
|
||||
|
||||
char *value, *end;
|
||||
@@ -2061,6 +2072,7 @@
|
||||
zend_hash_find(sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":itemType",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":itemType"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":itemType", sizeof(WSDL_NAMESPACE":itemType"), (void **)&ext) == SUCCESS) {
|
||||
if ((*ext)->ns != NULL) {
|
||||
enc = get_encoder(SOAP_GLOBAL(sdl), (*ext)->ns, (*ext)->val);
|
||||
@@ -2071,6 +2083,7 @@
|
||||
if (zend_hash_find(sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":arraySize",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":arraySize"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arraySize", sizeof(WSDL_NAMESPACE":arraysize"), (void **)&ext) == SUCCESS) {
|
||||
dimension = calc_dimension_12((*ext)->val);
|
||||
dims = get_position_12(dimension, (*ext)->val);
|
||||
@@ -2091,6 +2104,7 @@
|
||||
zend_hash_find(sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":arraySize",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":arraySize"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arraySize", sizeof(WSDL_NAMESPACE":arraySize"), (void **)&ext) == SUCCESS) {
|
||||
dimension = calc_dimension_12((*ext)->val);
|
||||
dims = get_position_12(dimension, (*ext)->val);
|
||||
@@ -2248,6 +2262,7 @@
|
||||
zend_hash_find(type->sdl_type->attributes, SOAP_1_1_ENC_NAMESPACE":arrayType",
|
||||
sizeof(SOAP_1_1_ENC_NAMESPACE":arrayType"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType"), (void **)&ext) == SUCCESS) {
|
||||
char *type, *end;
|
||||
|
||||
@@ -2269,6 +2284,7 @@
|
||||
zend_hash_find(type->sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":itemType",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":itemType"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":itemType", sizeof(WSDL_NAMESPACE":itemType"), (void **)&ext) == SUCCESS) {
|
||||
|
||||
if ((*ext)->ns != NULL) {
|
||||
@@ -2278,6 +2294,7 @@
|
||||
if (zend_hash_find(type->sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":arraySize",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":arraySize"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arraySize", sizeof(WSDL_NAMESPACE":arraysize"), (void **)&ext) == SUCCESS) {
|
||||
dimension = calc_dimension_12((*ext)->val);
|
||||
dims = get_position_12(dimension, (*ext)->val);
|
||||
@@ -2290,6 +2307,7 @@
|
||||
zend_hash_find(type->sdl_type->attributes, SOAP_1_2_ENC_NAMESPACE":arraySize",
|
||||
sizeof(SOAP_1_2_ENC_NAMESPACE":arraySize"),
|
||||
(void **)&arrayType) == SUCCESS &&
|
||||
+ (*arrayType)->extraAttributes &&
|
||||
zend_hash_find((*arrayType)->extraAttributes, WSDL_NAMESPACE":arraySize", sizeof(WSDL_NAMESPACE":arraysize"), (void **)&ext) == SUCCESS) {
|
||||
|
||||
dimension = calc_dimension_12((*ext)->val);
|
||||
Index: php_http.c
|
||||
===================================================================
|
||||
RCS file: /repository/php-src/ext/soap/php_http.c,v
|
||||
retrieving revision 1.77.2.11.2.3
|
||||
retrieving revision 1.77.2.11.2.4
|
||||
diff -u -r1.77.2.11.2.3 -r1.77.2.11.2.4
|
||||
--- php_http.c 6 Sep 2006 11:03:45 -0000 1.77.2.11.2.3
|
||||
+++ php_http.c 28 Nov 2006 00:22:05 -0000 1.77.2.11.2.4
|
||||
@@ -469,9 +469,10 @@
|
||||
char HA1[33], HA2[33], response[33], cnonce[33], nc[9];
|
||||
PHP_MD5_CTX md5ctx;
|
||||
unsigned char hash[16];
|
||||
+ unsigned int ctx;
|
||||
|
||||
PHP_MD5Init(&md5ctx);
|
||||
- sprintf(cnonce, "%d", rand());
|
||||
+ sprintf(cnonce, "%d", php_rand_r(&ctx));
|
||||
PHP_MD5Update(&md5ctx, (unsigned char*)cnonce, strlen(cnonce));
|
||||
PHP_MD5Final(hash, &md5ctx);
|
||||
make_digest(cnonce, hash);
|
||||
Index: php_packet_soap.c
|
||||
===================================================================
|
||||
RCS file: /repository/php-src/ext/soap/php_packet_soap.c,v
|
||||
retrieving revision 1.42.2.1.2.2
|
||||
retrieving revision 1.42.2.1.2.3
|
||||
diff -u -r1.42.2.1.2.2 -r1.42.2.1.2.3
|
||||
--- php_packet_soap.c 11 Jul 2006 14:24:18 -0000 1.42.2.1.2.2
|
||||
+++ php_packet_soap.c 6 Nov 2006 16:36:43 -0000 1.42.2.1.2.3
|
||||
@@ -350,10 +350,22 @@
|
||||
if (val != NULL) {
|
||||
if (!node_is_equal_ex(val,"result",RPC_SOAP12_NAMESPACE)) {
|
||||
zval *tmp;
|
||||
+ zval **arr;
|
||||
|
||||
tmp = master_to_zval(NULL, val);
|
||||
if (val->name) {
|
||||
- add_assoc_zval(return_value, (char*)val->name, tmp);
|
||||
+ if (zend_hash_find(Z_ARRVAL_P(return_value), (char*)val->name, strlen((char*)val->name)+1, (void**)&arr) == SUCCESS) {
|
||||
+ add_next_index_zval(*arr, tmp);
|
||||
+ } else if (val->next && get_node(val->next, (char*)val->name)) {
|
||||
+ zval *arr;
|
||||
+
|
||||
+ MAKE_STD_ZVAL(arr);
|
||||
+ array_init(arr);
|
||||
+ add_next_index_zval(arr, tmp);
|
||||
+ add_assoc_zval(return_value, (char*)val->name, arr);
|
||||
+ } else {
|
||||
+ add_assoc_zval(return_value, (char*)val->name, tmp);
|
||||
+ }
|
||||
} else {
|
||||
add_next_index_zval(return_value, tmp);
|
||||
}
|
||||
Index: php_sdl.c
|
||||
===================================================================
|
||||
RCS file: /repository/php-src/ext/soap/php_sdl.c,v
|
||||
retrieving revision 1.88.2.12.2.3
|
||||
retrieving revision 1.88.2.12.2.4
|
||||
diff -u -r1.88.2.12.2.3 -r1.88.2.12.2.4
|
||||
--- php_sdl.c 20 Sep 2006 13:42:50 -0000 1.88.2.12.2.3
|
||||
+++ php_sdl.c 30 Nov 2006 23:51:24 -0000 1.88.2.12.2.4
|
||||
@@ -1863,7 +1863,7 @@
|
||||
sdlTypePtr *tmp;
|
||||
|
||||
tmp_elements = emalloc(sizeof(HashTable));
|
||||
- zend_hash_init(tmp_elements, 0, NULL, NULL, 0);
|
||||
+ zend_hash_init(tmp_elements, zend_hash_num_elements(type->elements), NULL, NULL, 0);
|
||||
|
||||
zend_hash_internal_pointer_reset(type->elements);
|
||||
while (zend_hash_get_current_data(type->elements, (void**)&tmp) == SUCCESS) {
|
Loading…
Reference in New Issue
Block a user