diff options
author | Dmitry Stogov <dmitry@php.net> | 2004-02-02 17:39:10 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2004-02-02 17:39:10 +0000 |
commit | a70a620a01897579ab7d28418532a55dcfb6c459 (patch) | |
tree | 48fa928dd6b00c1be678cc78f328960335bcf19d /ext/soap/php_encoding.c | |
parent | 862bf61de9a2f788899207a66794de65758b770f (diff) | |
download | php-git-a70a620a01897579ab7d28418532a55dcfb6c459.tar.gz |
fix: proper handling of SOAP 1.1 href and unresolved attributes references
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 2e9eb23b06..12d0ca0395 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -2304,7 +2304,14 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNo static xmlNodePtr check_and_resolve_href(xmlNodePtr data) { if (data && data->properties) { - xmlAttrPtr href = get_attribute(data->properties, "href"); + xmlAttrPtr href; + + href = data->properties; + while (1) { + href = get_attribute(href, "href"); + if (href == NULL || href->ns == NULL) {break;} + href = href->next; + } if (href) { /* Internal href try and find node */ if (href->children->content[0] == '#') { |