]> granicus.if.org Git - php/commitdiff
Fixed bug #28239 (No results returned on SOAP call, no error given)
authorDmitry Stogov <dmitry@php.net>
Fri, 21 May 2004 14:50:19 +0000 (14:50 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 21 May 2004 14:50:19 +0000 (14:50 +0000)
NEWS
ext/soap/php_packet_soap.c

diff --git a/NEWS b/NEWS
index 99b4930b9e1d925ee7b19aa1824f09182ccf363c..fe627b23952ecde1552543357747ad195ab66310 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2004, PHP 5 Release Candidate 3
+- Fixed bug #28239 (No results returned on SOAP call, no error given). (Dmitry)
 - Added ability to refer to existing .ini variables from within .ini files, as
   in:
     open_basedir = ${open_basedir} ":/new/dir"
index 68cb83b77c79d33c1ec292adb02cc02889df7ca4..b78fdee888bf4266a8d065f5132f7c8986e4a88f 100644 (file)
@@ -268,11 +268,16 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunction
                                                        val = cur;
                                                } else {
                                                        val = get_node(cur->children, param->paramName);
-                                                       if (val == NULL && res_count == 1) {
-                                                               val = get_node(cur->children, "return");
-                                                       }
-                                                       if (val == NULL && res_count == 1) {
-                                                               val = get_node(cur->children, "result");
+                                                       if (res_count == 1) {
+                                                               if (val == NULL) {
+                                                                       val = get_node(cur->children, "return");
+                                                               }
+                                                               if (val == NULL) {
+                                                                       val = get_node(cur->children, "result");
+                                                               }
+                                                               if (val == NULL && cur->children && cur->children->next == NULL) {
+                                                                       val = cur->children;                                                              
+                                                               }
                                                        }
                                                }
                                        }