From 6a7ed50811ba0ed4f0bee7f94aa156b407b936bf Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 16 Nov 2004 13:07:27 +0000 Subject: [PATCH] Fixed bug #30799 (SoapServer doesn't handle private or protected properties) --- NEWS | 2 ++ ext/soap/php_encoding.c | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 08f9fee920..ca6c9f2db1 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,8 @@ PHP NEWS or an object as first parameter. (Andrey) - Fixed potential problems with unserializing invalid serialize data. (Marcus) - Fixed bug #29801 (Set limit on the size of mmapable data). (Ilia) +- Fixed bug #30799 (SoapServer doesn't handle private or protected properties). + (Dmitry) - Fixed bug #30783 (Apache crash when using ReflectionFunction:: getStaticVariables()). (Marcus) - Fixed bug #30750 (Meaningful error message when upload directory is not diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 185d3e07fa..43ddd65a2f 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1424,7 +1424,18 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo property = master_to_xml(get_conversion((*zprop)->type), (*zprop), style, xmlParam); if (key_type == HASH_KEY_IS_STRING) { - xmlNodeSetName(property, str_key); + char *prop_name; + + if (Z_TYPE_P(data) == IS_OBJECT) { + char *class_name; + + zend_unmangle_property_name(str_key, &class_name, &prop_name); + } else { + prop_name = str_key; + } + if (prop_name) { + xmlNodeSetName(property, prop_name); + } } zend_hash_move_forward(prop); } -- 2.40.0