Req #50698 [Asn->Csd]: SoapClient should handle wsdls with some incompatiable endpoints

From: Date: Wed, 05 May 2010 07:44:37 +0000
Subject: Req #50698 [Asn->Csd]: SoapClient should handle wsdls with some incompatiable endpoints
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-150186@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=50698&edit=1

 ID:               50698
 Updated by:       dmitry@php.net
 Reported by:      zippy1981 at gmail dot com
 Summary:          SoapClient should handle wsdls with some incompatiable
                   endpoints
-Status:           Assigned
+Status:           Closed
 Type:             Feature/Change Request
 Package:          *General Issues
 Operating System: Windows XP/7 and probably all.
 PHP Version:      5.2.12, 5.3.1
 Assigned To:      dmitry

 New Comment:

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------
[2010-05-05 09:43:48] dmitry@php.net

Automatic comment from SVN on behalf of dmitry
Revision: http://svn.php.net/viewvc/?view=revision&revision=299013
Log: Fixed bug #50698 (SoapClient should handle wsdls with some
incompatiable endpoints). (Justin Dearing)

------------------------------------------------------------------------
[2010-04-02 20:48:18] zippy1981 at gmail dot com

Submitted a new patch with error handling.

------------------------------------------------------------------------
[2010-04-02 17:29:49] zippy1981 at gmail dot com

Below is a patch that helps to fix the behavior. The following problems
remain:

1) If the wsdl contains only non http endpoints, and the location
parameter is 
not specified, a proper error message is not generated.
2) If the wsdl contains only non http endpoints, and the location
parameter is 
specified, the error "Uncaught SoapFault exception: [Client] Function
("echo") 
is not a valid method for this service in File.php:21" is displayed.


Index: ext/soap/php_sdl.c
===================================================================
--- ext/soap/php_sdl.c	(revision 297339)
+++ ext/soap/php_sdl.c	(working copy)
@@ -832,7 +832,12 @@
 							if (strncmp((char*)tmp-
>children->content, WSDL_HTTP_TRANSPORT, sizeof(WSDL_HTTP_TRANSPORT)) ==
0) {
 								soapBinding-
>transport = SOAP_TRANSPORT_HTTP;
 							} else {
-								
soap_error1(E_ERROR, "Parsing WSDL: PHP-SOAP doesn't support transport
'%s'", 
tmp->children->content);
+								// Since this is 
an E_NOTICE severity message, it will disappear into the ether.
+								
soap_error1(E_NOTICE, "Parsing WSDL: PHP-SOAP doesn't support transport
'%s'", 
tmp->children->content);
+								
efree(soapBinding);
+								
efree(tmpbinding);
+								trav = trav-
>next;
+								continue;
 							}
 						}
 					}

------------------------------------------------------------------------
[2010-01-13 20:59:45] zippy1981 at gmail dot com

Thanks for your reply.

On my initial report I posted an example client. In a comment in the 
example client is a link to a github repo with a .NET web service that 
causes this issue (e.g. config file was bound to nettcp):

http://github.com/zippy1981/EchoService

Inside the .net service is also a copy of the PHP client.

The .NET code can be compiled on any windows machine with the free IDE 
SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/Download/)

I can provide a manually generated wsdl  with false endpoints if needed.

I'll gladly help test a fix or provide a mock if needed.

------------------------------------------------------------------------
[2010-01-13 20:29:39] srinatar@php.net

thanks for the clarification. if you can provide a test case /script ,
it would help us to work on this. thanks again for taking time for
following up on this. your help will definitely help PHP make better !

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=50698


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=50698&edit=1


Thread (12 messages)

« previous php.bugs (#150186) next »