]> granicus.if.org Git - php/commitdiff
Fixed calling header functions through __call()
authorDmitry Stogov <dmitry@php.net>
Fri, 14 Apr 2006 09:11:48 +0000 (09:11 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 14 Apr 2006 09:11:48 +0000 (09:11 +0000)
ext/soap/soap.c

index 2f872c8c3138f8c34526966cf0b344e4ace9c46a..875789143b638863ba179680c66a927ec4ae3c56 100644 (file)
@@ -1667,7 +1667,9 @@ PHP_METHOD(SoapServer, handle)
                        }
 
                        fn_name = estrndup(Z_STRVAL(h->function_name),Z_STRLEN(h->function_name));
-                       if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1)) {
+                       if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1) ||
+                           (service->type == SOAP_CLASS &&
+                            zend_hash_exists(function_table, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)))) {
                                if (service->type == SOAP_CLASS) {
                                        call_status = call_user_function(NULL, &soap_obj, &h->function_name, &h->retval, h->num_params, h->parameters TSRMLS_CC);
                                } else {