mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
Merged bug fixes from PHP_5_0.
This commit is contained in:
parent
b8ed424ed3
commit
6078001f12
@ -250,8 +250,12 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunction
|
||||
while (zend_hash_get_current_data(fn->responseParameters, (void **)&h_param) == SUCCESS) {
|
||||
param = (*h_param);
|
||||
if (fnb->style == SOAP_DOCUMENT) {
|
||||
name = param->encode->details.type_str;
|
||||
ns = param->encode->details.ns;
|
||||
if (param->element) {
|
||||
name = param->encode->details.type_str;
|
||||
ns = param->encode->details.ns;
|
||||
} else {
|
||||
name = param->paramName;
|
||||
}
|
||||
} else {
|
||||
name = fn->responseName;
|
||||
/* ns = ? */
|
||||
|
@ -1126,7 +1126,9 @@ PHP_METHOD(SoapServer, getFunctions)
|
||||
HashPosition pos;
|
||||
zend_hash_internal_pointer_reset_ex(ft, &pos);
|
||||
while (zend_hash_get_current_data_ex(ft, (void **)&f, &pos) != FAILURE) {
|
||||
add_next_index_string(return_value, f->common.function_name, 1);
|
||||
if ((service->type != SOAP_CLASS) || (f->common.fn_flags & ZEND_ACC_PUBLIC)) {
|
||||
add_next_index_string(return_value, f->common.function_name, 1);
|
||||
}
|
||||
zend_hash_move_forward_ex(ft, &pos);
|
||||
}
|
||||
}
|
||||
|
25
ext/soap/tests/bugs/bug29830.phpt
Normal file
25
ext/soap/tests/bugs/bug29830.phpt
Normal file
@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #29844 (SoapServer::setClass() should not export non-public methods)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class hello_world {
|
||||
public function hello($to) {
|
||||
return 'Hello ' . $to;
|
||||
}
|
||||
private function bye($to) {
|
||||
return 'Bye ' . $to;
|
||||
}
|
||||
}
|
||||
|
||||
$server = new SoapServer(NULL, array("uri"=>"test://"));
|
||||
$server->setClass('hello_world');
|
||||
$functions = $server->getFunctions();
|
||||
foreach($functions as $func) {
|
||||
echo $func . "\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
hello
|
36
ext/soap/tests/bugs/bug29844.phpt
Normal file
36
ext/soap/tests/bugs/bug29844.phpt
Normal file
@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #29844 (SOAP doesn't return the result of a valid SOAP request)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class hello_world {
|
||||
public function hello($to) {
|
||||
return 'Hello ' . $to;
|
||||
}
|
||||
}
|
||||
|
||||
class LocalSoapClient extends SoapClient {
|
||||
|
||||
function LocalSoapClient($wsdl, $options) {
|
||||
$this->SoapClient($wsdl, $options);
|
||||
$this->server = new SoapServer($wsdl, $options);
|
||||
$this->server->setClass('hello_world');;
|
||||
}
|
||||
|
||||
function __doRequest($request, $location, $action, $version) {
|
||||
ob_start();
|
||||
$this->server->handle($request);
|
||||
$response = ob_get_contents();
|
||||
ob_end_clean();
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$client = new LocalSoapClient(dirname(__FILE__)."/bug29844.wsdl", array("trace"=>1));
|
||||
var_dump($client->hello('davey'));
|
||||
?>
|
||||
--EXPECT--
|
||||
string(11) "Hello davey"
|
66
ext/soap/tests/bugs/bug29844.wsdl
Normal file
66
ext/soap/tests/bugs/bug29844.wsdl
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" ?>
|
||||
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://davey.synapticmedia.net/php-mag/shafikdavey_automaticwebservices/src/Listing%201.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" name="Crtx_SOAP_AutoDiscover_Example" targetNamespace="http://davey.synapticmedia.net/php-mag/shafikdavey_automaticwebservices/src/Listing%201.php">
|
||||
<portType name="Crtx_SOAP_AutoDiscover_ExamplePort">
|
||||
<operation name="hello">
|
||||
<input message="tns:helloRequest" />
|
||||
<output message="tns:helloResponse" />
|
||||
<documentation>Say Hello to Somebody</documentation>
|
||||
</operation>
|
||||
<operation name="goodBye">
|
||||
<input message="tns:goodByeRequest" />
|
||||
<output message="tns:goodByeResponse" />
|
||||
<documentation>Say Goodbye to Somebody</documentation>
|
||||
</operation>
|
||||
</portType>
|
||||
<binding name="Crtx_SOAP_AutoDiscover_ExampleBinding"
|
||||
type="tns:Crtx_SOAP_AutoDiscover_ExamplePort">
|
||||
<soap:binding style="document"
|
||||
transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<operation name="hello">
|
||||
<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>
|
||||
<soap:operation soapAction="http://davey.synapticmedia.net/php-mag/shafikdavey_automaticwebservices/src/Listing%201.php#hello" />
|
||||
</operation>
|
||||
<soap:binding style="document"
|
||||
transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<operation name="goodBye">
|
||||
<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>
|
||||
<soap:operation soapAction="http://davey.synapticmedia.net/php-mag/shafikdavey_automaticwebservices/src/Listing%201.php#goodBye" />
|
||||
</operation>
|
||||
</binding>
|
||||
<service name="Crtx_SOAP_AutoDiscover_ExampleService">
|
||||
<port name="tns:Crtx_SOAP_AutoDiscover_ExamplePort"
|
||||
binding="tns:Crtx_SOAP_AutoDiscover_ExampleBinding">
|
||||
<soap:address location="http://davey.synapticmedia.net/php-mag/shafikdavey_automaticwebservices/src/Listing%201.php" />
|
||||
</port>
|
||||
</service>
|
||||
<message name="helloRequest">
|
||||
<part name="to" type="xsd:string" />
|
||||
<documentation>Say Hello to Somebody</documentation>
|
||||
</message>
|
||||
<message name="helloResponse">
|
||||
<part name="helloReturn" type="xsd:string" />
|
||||
<documentation>The greeting</documentation>
|
||||
</message>
|
||||
<message name="goodByeRequest">
|
||||
<part name="to" type="xsd:string" />
|
||||
<documentation>Say Goodbye to Somebody</documentation>
|
||||
</message>
|
||||
<message name="goodByeResponse">
|
||||
<part name="goodByeReturn" type="xsd:string" />
|
||||
<documentation>The goodbye</documentation>
|
||||
</message>
|
||||
</definitions>
|
Loading…
Reference in New Issue
Block a user