From d96b6fe0c118e553d129e1340a6aa619c02258c5 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 13 Nov 2007 15:10:28 +0000 Subject: [PATCH] Fixed bug #42692 (Procedure 'int1' not present with doc/lit SoapServer) --- ext/soap/soap.c | 1 + ext/soap/tests/bugs/bug42692.phpt | 37 ++++++++++++++++++++++++++++ ext/soap/tests/bugs/bug42692.wsdl | 40 +++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100755 ext/soap/tests/bugs/bug42692.phpt create mode 100755 ext/soap/tests/bugs/bug42692.wsdl diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 6e5ef66fb4..9a379aed4f 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -5000,6 +5000,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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.50.1