mirror of
https://github.com/php/php-src.git
synced 2024-12-11 10:54:47 +08:00
Fixed bug #41337 WSDL parsing doesn't ignore non soap bindings
This commit is contained in:
parent
007bac315d
commit
7d1dbff79d
@ -717,7 +717,7 @@ static sdlPtr load_wsdl(zval *this_ptr, char *struri TSRMLS_DC)
|
||||
trav2 = trav2->next;
|
||||
}
|
||||
if (!address) {
|
||||
if (has_soap_port || trav->next) {
|
||||
if (has_soap_port || trav->next || i < n-1) {
|
||||
efree(tmpbinding);
|
||||
trav = trav->next;
|
||||
continue;
|
||||
|
12
ext/soap/tests/bugs/bug41337_2.phpt
Executable file
12
ext/soap/tests/bugs/bug41337_2.phpt
Executable file
@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #41337 (WSDL parsing doesn't ignore non soap bindings)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
ini_set("soap.wsdl_cache_enabled",0);
|
||||
$client = new SoapClient(dirname(__FILE__)."/bug41337_2.wsdl");
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
36
ext/soap/tests/bugs/bug41337_2.wsdl
Executable file
36
ext/soap/tests/bugs/bug41337_2.wsdl
Executable file
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" ?>
|
||||
<definitions
|
||||
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:si="http://soapinterop.org/xsd"
|
||||
xmlns:tns="http://linuxsrv.home/~dmitry/soap/test.wsdl"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
targetNamespace="http://linuxsrv.home/~dmitry/soap/test.wsdl">
|
||||
|
||||
<import namespace="http://linuxsrv.home/~dmitry/soap/test.wsdl"
|
||||
location="bug41337_2_1.wsdl" />
|
||||
|
||||
<binding name="TestServiceBinding" type="tns:TestServicePortType">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<operation name="Add">
|
||||
<soap:operation soapAction="Add" style="rpc" />
|
||||
<input>
|
||||
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="TestService">
|
||||
<port name="TestServicePort" binding="tns:TestServiceBinding">
|
||||
<soap:address location="http://linuxsrv.home/~dmitry/soap/soap_server.php" />
|
||||
</port>
|
||||
</service>
|
||||
|
||||
</definitions>
|
47
ext/soap/tests/bugs/bug41337_2_1.wsdl
Executable file
47
ext/soap/tests/bugs/bug41337_2_1.wsdl
Executable file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" ?>
|
||||
<definitions
|
||||
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:si="http://soapinterop.org/xsd"
|
||||
xmlns:tns="http://linuxsrv.home/~dmitry/soap/test.wsdl"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
targetNamespace="http://linuxsrv.home/~dmitry/soap/test.wsdl">
|
||||
|
||||
<types>
|
||||
<xsd:schema targetNamespace="http://linuxsrv.home/~dmitry/soap/test.wsdl">
|
||||
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
|
||||
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="AddRequest">
|
||||
<part name="x" type="xsd:double" />
|
||||
<part name="y" type="xsd:double" />
|
||||
</message>
|
||||
<message name="AddResponse">
|
||||
<part name="result" type="xsd:double" />
|
||||
</message>
|
||||
|
||||
<portType name="TestServicePortType">
|
||||
<operation name="Add">
|
||||
<input message="tns:AddRequest" />
|
||||
<output message="tns:AddResponse" />
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="TestServiceBinding2" type="tns:TestServicePortType">
|
||||
<operation name="Add">
|
||||
<input/>
|
||||
<output/>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="TestService2">
|
||||
<port name="TestServicePort2" binding="tns:TestServiceBinding"/>
|
||||
</service>
|
||||
|
||||
</definitions>
|
Loading…
Reference in New Issue
Block a user