summaryrefslogtreecommitdiff
path: root/ext/soap/php_soap.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/soap/php_soap.h')
-rw-r--r--ext/soap/php_soap.h81
1 files changed, 9 insertions, 72 deletions
diff --git a/ext/soap/php_soap.h b/ext/soap/php_soap.h
index 9475e3207e..7f77d02add 100644
--- a/ext/soap/php_soap.h
+++ b/ext/soap/php_soap.h
@@ -141,6 +141,8 @@ ZEND_BEGIN_MODULE_GLOBALS(soap)
HashTable *services;
HashTable *overrides;
int cur_uniq_ns;
+ sdlPtr sdl;
+ zend_bool use_soap_error_handler;
ZEND_END_MODULE_GLOBALS(soap)
#ifdef PHP_WIN32
#define PHP_SOAP_API __declspec(dllexport)
@@ -159,73 +161,6 @@ ZEND_EXTERN_MODULE_GLOBALS(soap);
# define SOAP_GLOBAL(v) (soap_globals.v)
#endif
-#define PHP_SOAP_SERVER_CLASSNAME "soapserver"
-#define PHP_SOAP_CLASSNAME "soapobject"
-#define PHP_SOAP_VAR_CLASSNAME "soapvar"
-#define PHP_SOAP_FAULT_CLASSNAME "soapfault"
-#define PHP_SOAP_PARAM_CLASSNAME "soapparam"
-
-
-extern zend_module_entry soap_module_entry;
-#define soap_module_ptr & soap_module_entry
-
-PHP_MINIT_FUNCTION(soap);
-PHP_MSHUTDOWN_FUNCTION(soap);
-PHP_MINFO_FUNCTION(soap);
-
-/*
- Registry Functions
- TODO: this!
-*/
-PHP_FUNCTION(load_sdl);
-PHP_FUNCTION(unload_sdl);
-PHP_FUNCTION(unload_all_sdls);
-PHP_FUNCTION(get_available_sdls);
-PHP_FUNCTION(get_available_functions);
-PHP_FUNCTION(get_function_parameters);
-PHP_FUNCTION(soap_encode_to_xml);
-PHP_FUNCTION(soap_encode_to_zval);
-
-
-/* Server Functions */
-PHP_FUNCTION(soapserver);
-PHP_FUNCTION(setclass);
-PHP_FUNCTION(addfunction);
-PHP_FUNCTION(getfunctions);
-PHP_FUNCTION(handle);
-PHP_FUNCTION(setpersistence);
-PHP_FUNCTION(bind);
-#ifdef HAVE_PHP_DOMXML
-PHP_FUNCTION(map);
-#endif
-
-/* Client Functions */
-PHP_FUNCTION(soapobject);
-PHP_FUNCTION(__use);
-PHP_FUNCTION(__style);
-PHP_FUNCTION(__isfault);
-PHP_FUNCTION(__getfault);
-PHP_FUNCTION(__call);
-PHP_FUNCTION(__parse);
-PHP_FUNCTION(__generate);
-PHP_FUNCTION(__trace);
-PHP_FUNCTION(__getfunctions);
-PHP_FUNCTION(__gettypes);
-PHP_FUNCTION(__getlastresponse);
-PHP_FUNCTION(__getlastrequest);
-PHP_FUNCTION(__headerclass);
-PHP_FUNCTION(__headerfunction);
-
-/* SoapVar Functions */
-PHP_FUNCTION(soapvar);
-
-/* SoapFault Functions */
-PHP_FUNCTION(soapfault);
-
-/* SoapParam Functions */
-PHP_FUNCTION(soapparam);
-
-
#define DECLARE_TRACE(file) \
FILE *trace_fp; \
char *trace_file = file;
@@ -235,13 +170,13 @@ PHP_FUNCTION(soapparam);
fwrite(place, strlen(place), 1, trace_fp); \
fclose(trace_fp);
-extern zend_class_entry soap_var_class_entry;
+extern zend_class_entry* soap_var_class_entry;
PS_SERIALIZER_FUNCS(soap);
void clear_soap_fault(zval *obj);
void set_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC);
-void add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC);
+zval* add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC);
sdlParamPtr get_param(sdlFunctionPtr function, char *param_name, int index, int);
sdlFunctionPtr get_function(sdlBindingPtr sdl, char *function_name);
@@ -256,17 +191,18 @@ void delete_http_socket(void *handle);
void delete_url(void *handle);
void delete_mapping(void *data);
+#ifndef ZEND_ENGINE_2
void soap_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference);
zval soap_get_property_handler(zend_property_reference *property_reference);
int soap_set_property_handler(zend_property_reference *property_reference, zval *value);
void soap_destructor(void *jobject);
+#endif
void deseralize_function_call(sdlPtr sdl, xmlDocPtr request, zval *function_name, int *num_params, zval **parameters[] TSRMLS_DC);
xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_name,char *uri,zval *ret TSRMLS_DC);
xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, char *function_name, char *uri, zval **arguments, int arg_count TSRMLS_DC);
xmlNodePtr seralize_parameter(sdlParamPtr param,zval *param_val,int index,char *name, int style TSRMLS_DC);
xmlNodePtr seralize_zval(zval *val, sdlParamPtr param, char *paramName, int style TSRMLS_DC);
-zval *desearlize_zval(sdlPtr sdl, xmlNodePtr data, sdlParamPtr param TSRMLS_DC);
void soap_error_handler(int error_num, const char *error_filename, const uint error_lineno, const char *format, va_list args);
#ifndef ZEND_ENGINE_2
@@ -278,10 +214,11 @@ int my_call_user_function(HashTable *function_table, zval **object_pp, zval *fun
#define HTTP_RAW_POST_DATA "HTTP_RAW_POST_DATA"
#define SOAP_SERVER_BEGIN_CODE() \
- zend_error_cb = soap_error_handler
+ zend_bool old_handler = SOAP_GLOBAL(use_soap_error_handler);\
+ SOAP_GLOBAL(use_soap_error_handler) = 1;
#define SOAP_SERVER_END_CODE() \
- zend_error_cb = old_handler
+ SOAP_GLOBAL(use_soap_error_handler) = old_handler
#define FOREACHATTRNODE(n,c,i) \