dmitry          Wed Jun 18 07:24:14 2008 UTC

  Modified files:              
    /php-src/ext/soap   php_sdl.c 
    /php-src/ext/soap/tests/bugs        multiport.phpt multiport.wsdl 
                                        bug29109.phpt 
  Log:
  Fixed SOAP binding selection
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_sdl.c?r1=1.112&r2=1.113&diff_format=u
Index: php-src/ext/soap/php_sdl.c
diff -u php-src/ext/soap/php_sdl.c:1.112 php-src/ext/soap/php_sdl.c:1.113
--- php-src/ext/soap/php_sdl.c:1.112    Wed May  7 15:45:02 2008
+++ php-src/ext/soap/php_sdl.c  Wed Jun 18 07:24:14 2008
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_sdl.c,v 1.112 2008/05/07 15:45:02 davidc Exp $ */
+/* $Id: php_sdl.c,v 1.113 2008/06/18 07:24:14 dmitry Exp $ */
 
 #include "php_soap.h"
 #include "ext/libxml/php_libxml.h"
@@ -721,12 +721,12 @@
                                        }
                                  trav2 = trav2->next;
                                }
-                               if (!address) {
+                               if (!address || tmpbinding->bindingType == 
BINDING_HTTP) {
                                        if (has_soap_port || trav->next || i < 
n-1) {
                                                efree(tmpbinding);
                                                trav = trav->next;
                                                continue;
-                                       } else {
+                                       } else if (!address) {
                                                soap_error0(E_ERROR, "Parsing 
WSDL: No address associated with <port>");
                                        }
                                }
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/multiport.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/soap/tests/bugs/multiport.phpt
diff -u /dev/null php-src/ext/soap/tests/bugs/multiport.phpt:1.2
--- /dev/null   Wed Jun 18 07:24:14 2008
+++ php-src/ext/soap/tests/bugs/multiport.phpt  Wed Jun 18 07:24:14 2008
@@ -0,0 +1,16 @@
+--TEST--
+Proper binding selection
+--SKIPIF--
+<?php require_once 'skipif.inc'; ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__).'/multiport.wsdl', 
+       array('trace' => true, 'exceptions' => false));
+$response = $client->GetSessionId(array('userId'=>'user', 
'password'=>'password'));
+echo $client->__getLastRequest();
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ns1="http://www.reuters.com/";><SOAP-ENV:Body><ns1:GetSessionId><ns1:userId>user</ns1:userId><ns1:password>password</ns1:password></ns1:GetSessionId></SOAP-ENV:Body></SOAP-ENV:Envelope>
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/multiport.wsdl?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/soap/tests/bugs/multiport.wsdl
diff -u /dev/null php-src/ext/soap/tests/bugs/multiport.wsdl:1.2
--- /dev/null   Wed Jun 18 07:24:14 2008
+++ php-src/ext/soap/tests/bugs/multiport.wsdl  Wed Jun 18 07:24:14 2008
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://www.reuters.com/"; 
xmlns:tns="http://www.reuters.com/"; 
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:s="http://www.w3.org/2001/XMLSchema";>
+  <wsdl:types>
+    <s:schema elementFormDefault="qualified" 
targetNamespace="http://www.reuters.com/";>
+      <s:element name="GetSessionId">
+        <s:complexType>
+          <s:sequence>
+            <s:element maxOccurs="1" minOccurs="0" name="userId" 
type="s:string"/>
+            <s:element maxOccurs="1" minOccurs="0" name="password" 
type="s:string"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetSessionIdResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element maxOccurs="1" minOccurs="0" name="GetSessionIdResult" 
type="s:string"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+    </s:schema>
+  </wsdl:types>
+  <wsdl:message name="GetSessionIdHttpGetIn">
+    <wsdl:part name="userId" type="s:string">
+    </wsdl:part>
+    <wsdl:part name="password" type="s:string">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="GetSessionIdHttpGetOut">
+    <wsdl:part name="Body" element="tns:string">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="GetSessionIdSoapOut">
+    <wsdl:part name="parameters" element="tns:GetSessionIdResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="GetSessionIdSoapIn">
+    <wsdl:part name="parameters" element="tns:GetSessionId">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="StocksDataSecureHttpGet">
+    <wsdl:operation name="GetSessionId">
+      <wsdl:input message="tns:GetSessionIdHttpGetIn">
+    </wsdl:input>
+      <wsdl:output message="tns:GetSessionIdHttpGetOut">
+    </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="StocksDataSecureSoap">
+    <wsdl:operation name="GetSessionId">
+      <wsdl:input message="tns:GetSessionIdSoapIn">
+    </wsdl:input>
+      <wsdl:output message="tns:GetSessionIdSoapOut">
+    </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="StocksDataSecureHttpGet" 
type="tns:StocksDataSecureHttpGet">
+    <http:binding verb="GET"/>
+    <wsdl:operation name="GetSessionId">
+      <http:operation location="/GetSessionId"/>
+      <wsdl:input>
+        <http:urlEncoded/>
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:binding name="StocksDataSecureSoap" type="tns:StocksDataSecureSoap">
+    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="GetSessionId">
+      <soap:operation soapAction="http://www.reuters.com/GetSessionId"; 
style="document"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="StocksDataSecure">
+    <wsdl:port name="StocksDataSecureHttpGet" 
binding="tns:StocksDataSecureHttpGet">
+      <http:address location="test://"/>
+    </wsdl:port>
+    <wsdl:port name="StocksDataSecureSoap" binding="tns:StocksDataSecureSoap">
+      <soap:address location="test://"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug29109.phpt?r1=1.4&r2=1.5&diff_format=u
Index: php-src/ext/soap/tests/bugs/bug29109.phpt
diff -u php-src/ext/soap/tests/bugs/bug29109.phpt:1.4 
php-src/ext/soap/tests/bugs/bug29109.phpt:1.5
--- php-src/ext/soap/tests/bugs/bug29109.phpt:1.4       Tue May 27 03:22:42 2008
+++ php-src/ext/soap/tests/bugs/bug29109.phpt   Wed Jun 18 07:24:14 2008
@@ -10,11 +10,7 @@
 var_dump($client->__getFunctions()); 
 ?>
 --EXPECT--
-array(3) {
+array(1) {
   [0]=>
   unicode(53) "HelloWorldResponse HelloWorld(HelloWorld $parameters)"
-  [1]=>
-  unicode(19) "string HelloWorld()"
-  [2]=>
-  unicode(19) "string HelloWorld()"
 }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to