diff options
author | Dmitry Stogov <dmitry@php.net> | 2004-11-16 13:04:39 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2004-11-16 13:04:39 +0000 |
commit | 94a372b992edaf92e18d62f8385fe78b77fe8f3e (patch) | |
tree | 19c39ca16eef81feeb53b20cd55171f7e18c78d9 /ext/soap/php_encoding.c | |
parent | a9a5dbd9b8bfe68fe4306145023d16d38224ea85 (diff) | |
download | php-git-94a372b992edaf92e18d62f8385fe78b77fe8f3e.tar.gz |
Fixed bug #30799 (SoapServer doesn't handle private or protected properties)
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 13 |
1 files changed, 12 insertions, 1 deletions
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); } |