dmitry Mon Nov 6 16:36:43 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/soap/tests/bugs bug39121.phpt
Modified files: /php-src NEWS /php-src/ext/soap php_packet_soap.c Log: Fixed bug #39121 (Incorrect return array handling in non-wsdl soap client) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.332&r2=1.2027.2.547.2.333&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.332 php-src/NEWS:1.2027.2.547.2.333 --- php-src/NEWS:1.2027.2.547.2.332 Sun Nov 5 18:31:41 2006 +++ php-src/NEWS Mon Nov 6 16:36:42 2006 @@ -27,6 +27,8 @@ (michal dot taborsky at gmail dot com, Ilia) - Fixed bug #39215 (Inappropriate close of stdin/stdout/stderr). (Wez,Ilia) - Fixed bug #39151 (Parse error in recursiveiteratoriterator.php). (Marcus) +- Fixed bug #39121 (Incorrect return array handling in non-wsdl soap client). + (Dmitry) - Fixed bug #39090 (DirectoryFilterDots doxygen docs and example is wrong). (Marcus) - Fixed bug #38698 (for some keys cdbmake creates corrupted db and cdb can't http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_packet_soap.c?r1=1.42.2.1.2.2&r2=1.42.2.1.2.3&diff_format=u Index: php-src/ext/soap/php_packet_soap.c diff -u php-src/ext/soap/php_packet_soap.c:1.42.2.1.2.2 php-src/ext/soap/php_packet_soap.c:1.42.2.1.2.3 --- php-src/ext/soap/php_packet_soap.c:1.42.2.1.2.2 Tue Jul 11 14:24:18 2006 +++ php-src/ext/soap/php_packet_soap.c Mon Nov 6 16:36:43 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_packet_soap.c,v 1.42.2.1.2.2 2006/07/11 14:24:18 dmitry Exp $ */ +/* $Id: php_packet_soap.c,v 1.42.2.1.2.3 2006/11/06 16:36:43 dmitry Exp $ */ #include "php_soap.h" @@ -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); } http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug39121.phpt?view=markup&rev=1.1 Index: php-src/ext/soap/tests/bugs/bug39121.phpt +++ php-src/ext/soap/tests/bugs/bug39121.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php