From: Dmitry Stogov Date: Tue, 13 Nov 2007 15:10:16 +0000 (+0000) Subject: Fixed bug #42692 (Procedure 'int1' not present with doc/lit SoapServer) X-Git-Tag: RELEASE_1_3_1~653 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b710c61f34f6719c673a1229c590e2a7a362144d;p=php Fixed bug #42692 (Procedure 'int1' not present with doc/lit SoapServer) --- diff --git a/ext/soap/soap.c b/ext/soap/soap.c index d981396a00..437c529e49 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -4487,6 +4487,7 @@ static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr params) break; } zend_hash_move_forward((*tmp)->requestParameters); + node = node->next; } if (ok /*&& node == NULL*/) { return (*tmp); diff --git a/ext/soap/tests/bugs/bug42692.phpt b/ext/soap/tests/bugs/bug42692.phpt new file mode 100755 index 0000000000..6511556b58 --- /dev/null +++ b/ext/soap/tests/bugs/bug42692.phpt @@ -0,0 +1,37 @@ +--TEST-- +Bug #42692 (Procedure 'int1' not present with doc/lit SoapServer) +--FILE-- +server = new SoapServer($wsdl, $options); + $this->server->addFunction("checkAuth"); + } + + function __doRequest($request, $location, $action, $version) { + ob_start(); + $this->server->handle($request); + $response = ob_get_contents(); + ob_end_clean(); + return $response; + } +} + +$client = new TestSoap(dirname(__FILE__) . "/bug42692.wsdl", array("trace"=>1)); +try { + $result = $client->checkAuth(1,"two"); + echo "Auth for 1 is $result\n"; +} catch (Exception $e) { + echo $e->getMessage(); +} +?> +--EXPECT-- +Auth for 1 is 1 diff --git a/ext/soap/tests/bugs/bug42692.wsdl b/ext/soap/tests/bugs/bug42692.wsdl new file mode 100755 index 0000000000..c8928e30d0 --- /dev/null +++ b/ext/soap/tests/bugs/bug42692.wsdl @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +