]> granicus.if.org Git - php/commitdiff
Fixed transparent SoapFault passing
authorDmitry Stogov <dmitry@php.net>
Tue, 10 May 2005 13:58:11 +0000 (13:58 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 10 May 2005 13:58:11 +0000 (13:58 +0000)
ext/soap/soap.c

index 787a8d509f1a92ff16bbf7c2506627b05b62b71b..35b74fa518f6279525602bd5daef9c2f27b4561e 100644 (file)
@@ -3498,6 +3498,15 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
                        zend_hash_internal_pointer_reset(fault->details);
                        zend_hash_get_current_data(fault->details, (void**)&sparam);
                        sparam = *(sdlParamPtr*)sparam;
+
+                       if (detail &&
+                           Z_TYPE_P(detail) == IS_OBJECT &&
+                           sparam->element &&
+                           zend_hash_num_elements(Z_OBJPROP_P(detail)) == 1 &&
+                           zend_hash_find(Z_OBJPROP_P(detail), sparam->element->name, strlen(sparam->element->name)+1, (void**)&tmp) == SUCCESS) {
+                               detail = *tmp;
+                       }
+
                        x = serialize_parameter(sparam, detail, 1, NULL, use, node TSRMLS_CC);
 
                        if (function &&