diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-05-10 14:58:17 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-05-10 14:58:17 +0000 |
commit | fb045249e572c922fc7a2ea50cc8a428ab3607c6 (patch) | |
tree | 114382134f4f880a0de0a93e97cfa140c5721ebe /ext/soap/php_sdl.c | |
parent | e7577d57cdae2e702961455bbe25ff02452f2ea0 (diff) | |
download | php-git-fb045249e572c922fc7a2ea50cc8a428ab3607c6.tar.gz |
Fixed bug #41337 (WSDL parsing doesn't ignore non soap bindings)
Diffstat (limited to 'ext/soap/php_sdl.c')
-rw-r--r-- | ext/soap/php_sdl.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 923215228f..ec1d07e81a 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -654,6 +654,7 @@ static sdlPtr load_wsdl(zval *this_ptr, char *struri TSRMLS_DC) for (i = 0; i < n; i++) { xmlNodePtr *tmp, service; xmlNodePtr trav, port; + int has_soap_port = 0; zend_hash_get_current_data(&ctx.services, (void **)&tmp); service = *tmp; @@ -716,8 +717,15 @@ static sdlPtr load_wsdl(zval *this_ptr, char *struri TSRMLS_DC) trav2 = trav2->next; } if (!address) { - soap_error0(E_ERROR, "Parsing WSDL: No address associated with <port>"); + if (has_soap_port || trav->next) { + efree(tmpbinding); + trav = trav->next; + continue; + } else { + soap_error0(E_ERROR, "Parsing WSDL: No address associated with <port>"); + } } + has_soap_port = 1; location = get_attribute(address->properties, "location"); if (!location) { |