[wsf-c-dev] svn commit r343 - wsf/php/src

svn at wso2.com svn at wso2.com
Sun Jan 7 21:15:49 PST 2007


Author: nandika
Date: Sun Jan  7 21:15:46 2007
New Revision: 343

Modified:
   wsf/php/src/out_transport_info.c
   wsf/php/src/stream.c
   wsf/php/src/util.c
   wsf/php/src/worker.c
   wsf/php/src/wsf.c
   wsf/php/src/wsf.h
   wsf/php/src/wsf_common.h
   wsf/php/src/wsf_out_transport_info.h
   wsf/php/src/wsf_stream.h
   wsf/php/src/wsf_worker.h
   wsf/php/src/wsf_xml_msg_recv.h
   wsf/php/src/xml_msg_recv.c
Log:
code copied from ext/soap removed

Modified: wsf/php/src/out_transport_info.c
==============================================================================
--- wsf/php/src/out_transport_info.c	(original)
+++ wsf/php/src/out_transport_info.c	Sun Jan  7 21:15:46 2007
@@ -52,6 +52,8 @@
             (axis2_http_out_transport_info_t *out_transport_info, 
             const axis2_env_t *env);
 
+
+
 /***************************** End of function headers ************************/
 
 axis2_http_out_transport_info_t * WS_CALL 

Modified: wsf/php/src/stream.c
==============================================================================
--- wsf/php/src/stream.c	(original)
+++ wsf/php/src/stream.c	Sun Jan  7 21:15:46 2007
@@ -64,7 +64,7 @@
         const axis2_env_t *env, 
         int count);
 
-WS_API axis2_stream_t * WS_CALL
+WSF_PHP_API axis2_stream_t * WS_CALL
 axis2_stream_create_php(const axis2_env_t *env, 
         php_req_info_t *req_info TSRMLS_DC)
 {

Modified: wsf/php/src/util.c
==============================================================================
--- wsf/php/src/util.c	(original)
+++ wsf/php/src/util.c	Sun Jan  7 21:15:46 2007
@@ -679,17 +679,15 @@
         AXIS2_OPTIONS_SET_PROPERTY(client_options, env, "items", sec_prop);
         AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client , env, "rampart");
     }
-	
-	if(zend_hash_find(Z_OBJPROP_P(zval_client), "reliable", sizeof("reliable"),(void**)&tmp) == SUCCESS 
-		&& Z_TYPE_PP(tmp) == IS_BOOL){
+	if(zend_hash_find(Z_OBJPROP_P(zval_msg), "reliable", sizeof("reliable"), (void**)&msg_tmp) == SUCCESS
+		&& Z_TYPE_PP(msg_tmp) == IS_BOOL){
 			is_rm_enabled = Z_BVAL_PP(tmp);
 	}
-	/*
-	else if(zend_hash_find(Z_OBJPROP_P(zval_msg), "reliable", sizeof("reliable"), (void**)&msg_tmp) == SUCCESS
-		&& Z_TYPE_PP(msg_tmp) == IS_BOOL){
+	else if(zend_hash_find(Z_OBJPROP_P(zval_client), "reliable", sizeof("reliable"),(void**)&tmp) == SUCCESS 
+		&& Z_TYPE_PP(tmp) == IS_BOOL){
 			is_rm_enabled = Z_BVAL_PP(tmp);
 	}
-	*/
+	
 	if(is_rm_enabled && is_addressing_engaged){
 		axis2_property_t *rmprop = NULL;
 		rmprop = axis2_property_create(env);
@@ -999,371 +997,3 @@
     return;    
 }        
 
-int parse_response(zval *this_ptr, char *buffer, int buffer_size, sdlFunctionPtr fn, 
-						char *fn_name, zval *return_value TSRMLS_DC)
-{
-	char* envelope_ns = NULL;
-	xmlDocPtr response;
-	xmlNodePtr trav, env, head, body, resp, cur, fault;
-	xmlAttrPtr attr;
-	int param_count = 0;
-	int soap_version = SOAP_1_1;
-	HashTable *hdrs = NULL;
-
-	ZVAL_NULL(return_value);
-
-	/* Response for one-way opearation */
-	if (buffer_size == 0) {
-		return TRUE;
-	}
-
-	/* Parse XML packet */
-	response = soap_xmlParseMemory(buffer, buffer_size);
-
-	if (!response) {
-		add_soap_fault(this_ptr, "Client", "looks like we got no XML document", NULL, NULL TSRMLS_CC);
-		return FALSE;
-	}
-	if (xmlGetIntSubset(response) != NULL) {
-		add_soap_fault(this_ptr, "Client", "DTD are not supported by SOAP", NULL, NULL TSRMLS_CC);
-		xmlFreeDoc(response);
-		return FALSE;
-	}
-	if(WSF_GLOBAL(soap_version) == SOAP_1_2)
-		envelope_ns = SOAP_1_2_ENV_NAMESPACE;
-	else
-		envelope_ns = SOAP_1_1_ENV_NAMESPACE;
-
-	/*
-	env = NULL;
-	trav = response->children;
-	while (trav != NULL) {
-		if (trav->type == XML_ELEMENT_NODE) {
-			if (env == NULL && node_is_equal_ex(trav,"Envelope",SOAP_1_1_ENV_NAMESPACE)) {
-				env = trav;
-				envelope_ns = SOAP_1_1_ENV_NAMESPACE;
-				soap_version = SOAP_1_1;
-			} else if (env == NULL && node_is_equal_ex(trav,"Envelope",SOAP_1_2_ENV_NAMESPACE)) {
-				env = trav;
-				envelope_ns = SOAP_1_2_ENV_NAMESPACE;
-				soap_version = SOAP_1_2;
-			} else {
-				add_soap_fault(this_ptr, "VersionMismatch", "Wrong Version", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			}
-		}
-		trav = trav->next;
-	}
-	
-	if (env == NULL) {
-		add_soap_fault(this_ptr, "Client", "looks like we got XML without \"Envelope\" element", NULL, NULL TSRMLS_CC);
-		xmlFreeDoc(response);
-		return FALSE;
-	}
-	
-	attr = env->properties;
-	while (attr != NULL) {
-		if (attr->ns == NULL) {
-			add_soap_fault(this_ptr, "Client", "A SOAP Envelope element cannot have non Namespace qualified attributes", NULL, NULL TSRMLS_CC);
-			xmlFreeDoc(response);
-			return FALSE;
-		} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-			if (soap_version == SOAP_1_2) {
-				add_soap_fault(this_ptr, "Client", "encodingStyle cannot be specified on the Envelope", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			} else if (strcmp((char*)attr->children->content, SOAP_1_1_ENC_NAMESPACE) != 0) {
-				add_soap_fault(this_ptr, "Client", "Unknown data encoding style", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			}
-		}
-		attr = attr->next;
-	}
-
-	head = NULL;
-	trav = env->children;
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (trav != NULL && node_is_equal_ex(trav,"Header",envelope_ns)) {
-		head = trav;
-		trav = trav->next;
-	}
-
-	body = NULL;
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (trav != NULL && node_is_equal_ex(trav,"Body",envelope_ns)) {
-		body = trav;
-		trav = trav->next;
-	}
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (body == NULL) {
-		add_soap_fault(this_ptr, "Client", "Body must be present in a SOAP envelope", NULL, NULL TSRMLS_CC);
-		xmlFreeDoc(response);
-		return FALSE;
-	}
-
-	attr = body->properties;
-	while (attr != NULL) {
-		if (attr->ns == NULL) {
-			if (soap_version == SOAP_1_2) {
-				add_soap_fault(this_ptr, "Client", "A SOAP Body element cannot have non Namespace qualified attributes", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			}
-		} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-			if (soap_version == SOAP_1_2) {
-				add_soap_fault(this_ptr, "Client", "encodingStyle cannot be specified on the Body", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			} else if (strcmp((char*)attr->children->content, SOAP_1_1_ENC_NAMESPACE) != 0) {
-				add_soap_fault(this_ptr, "Client", "Unknown data encoding style", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			}
-		}
-		attr = attr->next;
-	}
-	if (trav != NULL && soap_version == SOAP_1_2) {
-		add_soap_fault(this_ptr, "Client", "A SOAP 1.2 envelope can contain only Header and Body", NULL, NULL TSRMLS_CC);
-		xmlFreeDoc(response);
-		return FALSE;
-	}
-
-	if (head != NULL) {
-		attr = head->properties;
-		while (attr != NULL) {
-			if (attr->ns == NULL) {
-				add_soap_fault(this_ptr, "Client", "A SOAP Header element cannot have non Namespace qualified attributes", NULL, NULL TSRMLS_CC);
-				xmlFreeDoc(response);
-				return FALSE;
-			} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-				if (soap_version == SOAP_1_2) {
-					add_soap_fault(this_ptr, "Client", "encodingStyle cannot be specified on the Header", NULL, NULL TSRMLS_CC);
-					xmlFreeDoc(response);
-					return FALSE;
-				} else if (strcmp((char*)attr->children->content, SOAP_1_1_ENC_NAMESPACE) != 0) {
-					add_soap_fault(this_ptr, "Client", "Unknown data encoding style", NULL, NULL TSRMLS_CC);
-					xmlFreeDoc(response);
-					return FALSE;
-				}
-			}
-			attr = attr->next;
-		}
-	}
-	*/
-
-	fault = get_node_ex(response->children,"Fault",envelope_ns);
-	if (fault != NULL) {
-		char *faultcode = NULL, *faultstring = NULL, *faultactor = NULL;
-		zval *details = NULL;
-		xmlNodePtr tmp;
-
-		if (soap_version == SOAP_1_1) {
-			tmp = get_node(fault->children, "faultcode");
-			if (tmp != NULL && tmp->children != NULL) {
-				faultcode = (char*)tmp->children->content;
-			}
-
-			tmp = get_node(fault->children, "faultstring");
-			if (tmp != NULL && tmp->children != NULL) {
-				zval *zv = master_to_zval(get_conversion(IS_STRING), tmp);
-				faultstring = Z_STRVAL_P(zv);
-				FREE_ZVAL(zv);
-			}
-
-			tmp = get_node(fault->children, "faultactor");
-			if (tmp != NULL && tmp->children != NULL) {
-				zval *zv = master_to_zval(get_conversion(IS_STRING), tmp);
-				faultactor = Z_STRVAL_P(zv);
-				FREE_ZVAL(zv);
-			}
-
-			tmp = get_node(fault->children, "detail");
-			if (tmp != NULL) {
-				details = master_to_zval(NULL, tmp);
-			}
-		} else {
-			tmp = get_node(fault->children, "Code");
-			if (tmp != NULL && tmp->children != NULL) {
-				tmp = get_node(tmp->children, "Value");
-				if (tmp != NULL && tmp->children != NULL) {
-					faultcode = (char*)tmp->children->content;
-				}
-			}
-
-			tmp = get_node(fault->children,"Reason");
-			if (tmp != NULL && tmp->children != NULL) {
-				/* TODO: lang attribute */
-				tmp = get_node(tmp->children,"Text");
-				if (tmp != NULL && tmp->children != NULL) {
-					zval *zv = master_to_zval(get_conversion(IS_STRING), tmp);
-					faultstring = Z_STRVAL_P(zv);
-					FREE_ZVAL(zv);
-				}
-			}
-
-			tmp = get_node(fault->children,"Detail");
-			if (tmp != NULL) {
-				details = master_to_zval(NULL, tmp);
-			}
-		}
-		add_soap_fault(this_ptr, faultcode, faultstring, faultactor, details TSRMLS_CC);
-		if (faultstring) {
-			efree(faultstring);
-		}
-		if (faultactor) {
-			efree(faultactor);
-		}
-#ifdef ZEND_ENGINE_2
-		if (details) {
-			details->refcount--;
-		}
-#endif
-		xmlFreeDoc(response);
-		return FALSE;
-	}
-
-	/* Parse content of <Body> element */
-	array_init(return_value);
-	resp = response->children;
-	while (resp != NULL && resp->type != XML_ELEMENT_NODE) {
-		resp = resp->next;
-	}
-	if (resp != NULL) {
-		if (fn != NULL && fn->binding && fn->binding->bindingType == BINDING_SOAP) {
-		  /* Function has WSDL description */
-			sdlParamPtr *h_param, param = NULL;
-			xmlNodePtr val = NULL;
-			char *name, *ns = NULL;
-			zval* tmp;
-			sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)fn->bindingAttributes;
-			int res_count;
-
-			hdrs = fnb->output.headers;
-
-			if (fn->responseParameters) {
-			  res_count = zend_hash_num_elements(fn->responseParameters);
-				zend_hash_internal_pointer_reset(fn->responseParameters);
-				while (zend_hash_get_current_data(fn->responseParameters, (void **)&h_param) == SUCCESS) {
-					param = (*h_param);
-					if (fnb->style == SOAP_DOCUMENT) {
-						if (param->element) {
-							name = param->element->name;
-							ns = param->element->namens;
-/*
-							name = param->encode->details.type_str;
-							ns = param->encode->details.ns;
-*/
-						} else {
-							name = param->paramName;
-						}
-					} else {
-						name = fn->responseName;
-						/* ns = ? */
-					}
-
-					/* Get value of parameter */
-					cur = get_node_ex(resp, name, ns);
-					if (!cur) {
-						cur = get_node(resp, name);
-						/* TODO: produce warning invalid ns */
-					}
-					if (!cur && fnb->style == SOAP_RPC) {
-					  cur = resp;
-					}
-					if (cur) {
-						if (fnb->style == SOAP_DOCUMENT) {
-							val = cur;
-						} else {
-							val = get_node(cur->children, param->paramName);
-							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;								  
-								}
-							}
-						}
-					}
-
-					if (!val) {
-						/* TODO: may be "nil" is not OK? */
-						MAKE_STD_ZVAL(tmp);
-						ZVAL_NULL(tmp);
-/*
-						add_soap_fault(this_ptr, "Client", "Can't find response data", NULL, NULL TSRMLS_CC);
-						xmlFreeDoc(response);
-						return FALSE;
-*/
-					} else {
-						/* Decoding value of parameter */
-						if (param != NULL) {
-							tmp = master_to_zval(param->encode, val);
-						} else {
-							tmp = master_to_zval(NULL, val);
-						}
-					}
-					add_assoc_zval(return_value, param->paramName, tmp);
-
-					param_count++;
-
-					zend_hash_move_forward(fn->responseParameters);
-				}
-			}
-		} else {
-		  /* Function hasn't WSDL description */
-			xmlNodePtr val;
-			val = resp->children;
-			while (val != NULL) {
-				while (val && val->type != XML_ELEMENT_NODE) {
-					val = val->next;
-				}
-				if (val != NULL) {
-					if (!node_is_equal_ex(val,"result",RPC_SOAP12_NAMESPACE)) {
-						zval *tmp;
-
-						tmp = master_to_zval(NULL, val);
-						if (val->name) {
-							add_assoc_zval(return_value, (char*)val->name, tmp);
-						} else {
-							add_next_index_zval(return_value, tmp);
-						}
-						++param_count;
-					}
-					val = val->next;
-				}
-			}
-		}
-	}
-
-	if (Z_TYPE_P(return_value) == IS_ARRAY) {
-		if (param_count == 0) {
-			zval_dtor(return_value);
-			ZVAL_NULL(return_value);
-		} else if (param_count == 1) {
-			zval *tmp;
-
-			zend_hash_internal_pointer_reset(Z_ARRVAL_P(return_value));
-			zend_hash_get_current_data(Z_ARRVAL_P(return_value), (void**)&tmp);
-			tmp = *(zval**)tmp;
-			tmp->refcount++;
-			zval_dtor(return_value);
-			*return_value = *tmp;
-			FREE_ZVAL(tmp);
-		}
-	}
-
-	xmlFreeDoc(response);
-	return TRUE;
-}

Modified: wsf/php/src/worker.c
==============================================================================
--- wsf/php/src/worker.c	(original)
+++ wsf/php/src/worker.c	Sun Jan  7 21:15:46 2007
@@ -52,7 +52,7 @@
         php_req_info_t *req,
 		ws_svc_info_t *svc_info);
     
-WS_API axis2_char_t* WS_CALL
+WSF_PHP_API axis2_char_t* WS_CALL
 ws_worker_get_bytes(
         const axis2_env_t *env, 
         axis2_stream_t *stream);
@@ -68,7 +68,7 @@
         const axis2_env_t *env);
 
 
-WS_API ws_worker_t * WS_CALL
+WSF_PHP_API ws_worker_t * WS_CALL
 ws_worker_create (const axis2_env_t *env, 
         axis2_char_t *repo_path)
 {
@@ -422,7 +422,7 @@
     return send_status;
 }
 
-WS_API axis2_char_t* WS_CALL
+WSF_PHP_API axis2_char_t* WS_CALL
 ws_worker_get_bytes(const axis2_env_t *env, 
                         axis2_stream_t *stream)
 {

Modified: wsf/php/src/wsf.c
==============================================================================
--- wsf/php/src/wsf.c	(original)
+++ wsf/php/src/wsf.c	Sun Jan  7 21:15:46 2007
@@ -38,41 +38,14 @@
 #include <axis2_http_transport.h>
 #include <axis2_addr.h>
 #include <axiom_util.h>
-#include "php_sdl.h"
 
 ZEND_DECLARE_MODULE_GLOBALS(wsf)
 
-/** global variables */
-/* Copied from ext/soap */
-int le_url;
-int le_sdl;
-int le_typemap;
-static HashTable defEnc, defEncIndex, defEncNs;
-/** Drop This later */
-typedef struct _soapHeader {
-	sdlFunctionPtr                    function;
-	zval                              function_name;
-	int                               mustUnderstand;
-	int                               num_params;
-	zval                            **parameters;
-	zval                              retval;
-	sdlSoapBindingFunctionHeaderPtr   hdr;
-	struct _soapHeader               *next;
-} soapHeader;
-
-
 /* True global values, worker is thread safe */
 static axis2_env_t *env;
 static axis2_env_t *ws_env_svr;
 static ws_worker_t *worker;
 
-#define FIND_SDL_PROPERTY(ss,tmp) zend_hash_find(Z_OBJPROP_P(ss), "sdl", sizeof("sdl"), (void **)&tmp)
-#define FETCH_SDL_RES(ss,tmp) ss = (sdlPtr) zend_fetch_resource(tmp TSRMLS_CC, -1, "sdl", NULL, 1, le_sdl)
-
-#define FIND_TYPEMAP_PROPERTY(ss,tmp) zend_hash_find(Z_OBJPROP_P(ss), "typemap", sizeof("typemap"), (void **)&tmp)
-#define FETCH_TYPEMAP_RES(ss,tmp) ss = (HashTable*) zend_fetch_resource(tmp TSRMLS_CC, -1, "typemap", NULL, 1, le_typemap)
-
-
 /** WSMessage functions */
 PHP_METHOD(ws_message, __construct);
 PHP_METHOD(ws_message, __destruct);
@@ -147,8 +120,6 @@
 	{NULL , NULL, NULL}
 };
 
-
-
 /** client function entry */
 zend_function_entry php_ws_client_class_functions[]=
 {
@@ -232,6 +203,7 @@
         zend_object_handle handle TSRMLS_DC);
   
 static axis2_env_t *ws_env_create(axis2_char_t *logpath);
+
 static void ws_env_free(axis2_env_t *env);
 
 /* {{{ malloc wrapper */
@@ -272,8 +244,6 @@
 }
 /* }}} */
 
-
-
 /* {{{ ws_worker_dtor() */
 static void ws_worker_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
 {
@@ -430,53 +400,6 @@
 	return nodep;
 }
 /* }}} end ws_get_xml_node */
-/* {{{ initialize global values */
-/* COPIED FORM ext/soap */
-static void prepare_ws_globals()
-{
-	int i;
-	encodePtr enc;
-
-	zend_hash_init(&defEnc, 0, NULL, NULL, 1);
-	zend_hash_init(&defEncIndex, 0, NULL, NULL, 1);
-	zend_hash_init(&defEncNs, 0, NULL, NULL, 1);
-
-	i = 0;
-	do {
-		enc = &defaultEncoding[i];
-
-		/* If has a ns and a str_type then index it */
-		if (defaultEncoding[i].details.type_str) {
-			if (defaultEncoding[i].details.ns != NULL) {
-				char *ns_type;
-				ns_type = emalloc(strlen(defaultEncoding[i].details.ns) + strlen(defaultEncoding[i].details.type_str) + 2);
-				sprintf(ns_type, "%s:%s", defaultEncoding[i].details.ns, defaultEncoding[i].details.type_str);
-				zend_hash_add(&defEnc, ns_type, strlen(ns_type) + 1, &enc, sizeof(encodePtr), NULL);
-				efree(ns_type);
-			} else {
-				zend_hash_add(&defEnc, defaultEncoding[i].details.type_str, strlen(defaultEncoding[i].details.type_str) + 1, &enc, sizeof(encodePtr), NULL);
-			}
-		}
-		/* Index everything by number */
-		if (!zend_hash_index_exists(&defEncIndex, defaultEncoding[i].details.type)) {
-			zend_hash_index_update(&defEncIndex, defaultEncoding[i].details.type, &enc, sizeof(encodePtr), NULL);
-		}
-		i++;
-	} while (defaultEncoding[i].details.type != END_KNOWN_TYPES);
-
-	/* hash by namespace */
-	zend_hash_add(&defEncNs, XSD_1999_NAMESPACE, sizeof(XSD_1999_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
-	zend_hash_add(&defEncNs, XSD_NAMESPACE, sizeof(XSD_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
-	zend_hash_add(&defEncNs, XSI_NAMESPACE, sizeof(XSI_NAMESPACE), XSI_NS_PREFIX, sizeof(XSI_NS_PREFIX), NULL);
-	zend_hash_add(&defEncNs, XML_NAMESPACE, sizeof(XML_NAMESPACE), XML_NS_PREFIX, sizeof(XML_NS_PREFIX), NULL);
-	zend_hash_add(&defEncNs, SOAP_1_1_ENC_NAMESPACE, sizeof(SOAP_1_1_ENC_NAMESPACE), SOAP_1_1_ENC_NS_PREFIX, sizeof(SOAP_1_1_ENC_NS_PREFIX), NULL);
-	zend_hash_add(&defEncNs, SOAP_1_2_ENC_NAMESPACE, sizeof(SOAP_1_2_ENC_NAMESPACE), SOAP_1_2_ENC_NS_PREFIX, sizeof(SOAP_1_2_ENC_NS_PREFIX), NULL);
-}
-
-static void delete_url(void *handle)
-{
-    php_url_free((php_url*)handle);
-}
 
 static void delete_hashtable(void *data)
 {
@@ -485,1633 +408,6 @@
 	efree(ht);
 }
 
-static void function_to_string(sdlFunctionPtr function, smart_str *buf);
-static void type_to_string(sdlTypePtr type, smart_str *buf, int level);
-static sdlParamPtr get_param(sdlFunctionPtr function, char *param_name, int index, int);
-static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name);
-static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr node);
-
-static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, char* actor, zval *function_name, int *num_params, zval **parameters[], int *version, soapHeader **headers TSRMLS_DC);
-static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function_name,char *uri,zval *ret, soapHeader *headers, int version TSRMLS_DC);
-static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, char *function_name, char *uri, zval **arguments, int arg_count, int version, HashTable *soap_headers TSRMLS_DC);
-static xmlNodePtr serialize_parameter(sdlParamPtr param,zval *param_val,int index,char *name, int style, xmlNodePtr parent TSRMLS_DC);
-static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, int style, xmlNodePtr parent TSRMLS_DC);
-
-
-
-
-
-static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, char *function_name, char *uri, zval **arguments, int arg_count, int version, HashTable *soap_headers TSRMLS_DC)
-{
-	xmlDoc *doc;
-	xmlNodePtr envelope = NULL, body, method = NULL, head = NULL;
-	xmlNodePtr payload_node = NULL;
-	xmlNsPtr ns = NULL;
-	zval **zstyle, **zuse;
-	int i, style, use;
-	HashTable *hdrs = NULL;
-	encode_reset_ns();
-	doc = xmlNewDoc(BAD_CAST("1.0"));
-	doc->encoding = xmlCharStrdup("UTF-8");
-	doc->charset = XML_CHAR_ENCODING_UTF8;
-
-	if (function && function->binding->bindingType == BINDING_SOAP) {
-		sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-
-		hdrs = fnb->input.headers;
-		style = fnb->style;
-	
-		use = fnb->input.use;
-		/** modified */
-		if (function->requestName) {
-				method = xmlNewDocNode(doc, NULL, BAD_CAST(function->requestName), NULL);
-			} else {
-				method = xmlNewDocNode(doc, NULL, BAD_CAST(function->functionName), NULL);
-			}
-			
-			xmlDocSetRootElement(doc, method);
-		
-			
-			
-		if (style == SOAP_RPC) { 
-			xmlNsPtr xmlns = NULL;
-			smart_str prefix = {0};
-			
-			int num = ++WSF_GLOBAL(cur_uniq_ns);
-
-			
-
-			smart_str_appendl(&prefix, "ns", 2);
-			smart_str_append_long(&prefix, num);
-			smart_str_0(&prefix);
-			xmlns = xmlNewNs(method, BAD_CAST(fnb->input.ns), BAD_CAST(prefix.c));
-			smart_str_free(&prefix);
-			xmlSetNs(method, xmlns);
-		}
-	}
-
-	for (i =  0;i < arg_count;i++) {
-		xmlNodePtr param;
-		sdlParamPtr parameter = get_param(function, NULL, i, FALSE);
-	
-		/** soap document */
-		if (style == SOAP_RPC) {
-			param = serialize_parameter(parameter, arguments[i], i, NULL, use, method TSRMLS_CC);
-		} 
-		else if (style == SOAP_DOCUMENT) {
-			param = serialize_parameter(parameter, arguments[i], i, NULL, use, method TSRMLS_CC);
-			if (function && function->binding->bindingType == BINDING_SOAP) {
-				if (parameter && parameter->element) {
-					ns = encode_add_ns(param, parameter->element->namens);
-					xmlNodeSetName(param, BAD_CAST(parameter->element->name));
-					xmlSetNs(param, ns);
-				}
-			}
-			
-		}
-	}
-
-	if (function && function->requestParameters) {
-		int n = zend_hash_num_elements(function->requestParameters);
-
-		if (n > arg_count) {
-			for (i = arg_count; i < n; i++) {
-				xmlNodePtr param;
-				sdlParamPtr parameter = get_param(function, NULL, i, FALSE);
-
-				if (style == SOAP_RPC) {
-					param = serialize_parameter(parameter, NULL, i, NULL, use, method TSRMLS_CC);
-				} else if (style == SOAP_DOCUMENT) {
-					/*
-					param = serialize_parameter(parameter, NULL, i, NULL, use, body TSRMLS_CC);
-					if (function && function->binding->bindingType == BINDING_SOAP) {
-						if (parameter && parameter->element) {
-							ns = encode_add_ns(param, parameter->element->namens);
-							xmlNodeSetName(param, BAD_CAST(parameter->element->name));
-							xmlSetNs(param, ns);
-						}
-					}
-					*/
-				}
-			}
-		}
-	}
-	return doc;
-}
-
-
-static void do_soap_call(zval* this_ptr,
-                         char* function,
-                         int function_len,
-                         int arg_count,
-                         zval** real_args,
-                         zval* return_value,
-                         char* location,
-                         char* soap_action,
-                         char* call_uri,
-                         HashTable* soap_headers,
-                         zval* output_headers
-                         TSRMLS_DC)
-{
-	zval **tmp;
-	zval **trace;
- 	sdlPtr sdl = NULL;
- 	sdlPtr old_sdl = NULL;
- 	sdlFunctionPtr fn;
-	xmlDocPtr request = NULL;
-	int ret = FALSE;
-	int soap_version;
-	zval response;
-	xmlCharEncodingHandlerPtr old_encoding;
-	HashTable *old_class_map;
-	int old_features;
-	HashTable *old_typemap, *typemap = NULL;
-	axiom_node_t *om_node = NULL;
-	axiom_xml_reader_t *reader = NULL;
-	axis2_svc_client_t *svc_client = NULL;
-	axis2_options_t *client_options = NULL;
-	ws_object_ptr intern= NULL;		
-
-	axiom_node_t *result_node = NULL;
-
-	if (zend_hash_find(Z_OBJPROP_P(this_ptr), "trace", sizeof("trace"), (void **) &trace) == SUCCESS
-		&& Z_LVAL_PP(trace) > 0) {
-		zend_hash_del(Z_OBJPROP_P(this_ptr), "__last_request", sizeof("__last_request"));
-		zend_hash_del(Z_OBJPROP_P(this_ptr), "__last_response", sizeof("__last_response"));
-	}
-
-	if (zend_hash_find(Z_OBJPROP_P(this_ptr), "useSOAP", sizeof("useSOAP"), (void **) &tmp) == SUCCESS
-		&& Z_STRVAL_PP(tmp) == IS_STRING) {
-			if(strcmp(Z_STRVAL_PP(tmp), "1.2") == 0)					
-				soap_version = SOAP_1_2;
-			else 
-				soap_version == SOAP_1_1;					
-	} else {
-		soap_version = SOAP_1_2;
-	}
-
-	if (location == NULL) {
-		if (zend_hash_find(Z_OBJPROP_P(this_ptr), "to", sizeof("to"),(void **) &tmp) == SUCCESS &&
-		    Z_TYPE_PP(tmp) == IS_STRING) {
-		  location = Z_STRVAL_PP(tmp);
-		}
-	}
-	/* AXIS2_GET_OBJ(client, obj, axis2_svc_client_t, intern); */
-	AXIS2_GET_OBJ(svc_client, this_ptr, axis2_svc_client_t, intern);
-	client_options = AXIS2_SVC_CLIENT_GET_OPTIONS(svc_client, env);
-
-	if (FIND_SDL_PROPERTY(this_ptr,tmp) != FAILURE) {
-		FETCH_SDL_RES(sdl,tmp);
-	}
-	if (FIND_TYPEMAP_PROPERTY(this_ptr,tmp) != FAILURE) {
-		FETCH_TYPEMAP_RES(typemap,tmp);
-	}
-
-	WSF_GLOBAL(soap_version) = soap_version;
-	old_sdl = WSF_GLOBAL(sdl);
-	WSF_GLOBAL(sdl) = sdl;
-	old_encoding = WSF_GLOBAL(encoding);
-	
-	if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_encoding", sizeof("_encoding"), (void **) &tmp) == SUCCESS &&
-	    Z_TYPE_PP(tmp) == IS_STRING) {
-		WSF_GLOBAL(encoding) = xmlFindCharEncodingHandler(Z_STRVAL_PP(tmp));
-	} else {
-		WSF_GLOBAL(encoding) = NULL;
-	}
-	old_class_map = WSF_GLOBAL(class_map);
-	
-	if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_classmap", sizeof("_classmap"), (void **) &tmp) == SUCCESS &&
-	    Z_TYPE_PP(tmp) == IS_ARRAY) {
-		WSF_GLOBAL(class_map) = (*tmp)->value.ht;
-	} else {
-		WSF_GLOBAL(class_map) = NULL;
-	}
-	
-	old_typemap = WSF_GLOBAL(typemap);
-	
-	WSF_GLOBAL(typemap) = typemap;
-	
-	old_features = WSF_GLOBAL(features);
-	
-	if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_features", sizeof("_features"), (void **) &tmp) == SUCCESS &&
-	    Z_TYPE_PP(tmp) == IS_LONG) {
-		WSF_GLOBAL(features) = Z_LVAL_PP(tmp);
-	} else {
-		WSF_GLOBAL(features) = 0;
-	}
-
- 	if (sdl != NULL) {
- 		fn = get_function(sdl, function);
- 		if (fn != NULL) {
-			sdlBindingPtr binding = fn->binding;
-			int one_way = 0;
-
-			if (fn->responseName == NULL &&
-			    fn->responseParameters == NULL &&
-			    soap_headers == NULL) {
-				one_way = 1;
-			}
-
-			if (location == NULL) {
-				location = binding->location;
-				add_property_string(this_ptr, "to", location, 1);
-			}
-			if (binding->bindingType == BINDING_SOAP) {
-				xmlChar *buf = NULL;
-				xmlOutputBufferPtr p = NULL;
-				xmlBufferPtr bp = NULL;
-				xmlNodePtr node = NULL;
-				
-				int size;
-				sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)fn->bindingAttributes;
-				request = serialize_function_call(this_ptr, fn, NULL, fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
-				
-				bp = xmlBufferCreate();
-				p = xmlOutputBufferCreateBuffer(bp, NULL);
-				xmlNodeDumpOutput(p, request, request->children, 1, 0, WSF_GLOBAL(encoding));
-				xmlOutputBufferFlush(p);
-				reader = axiom_xml_reader_create_for_memory(env,
-					(axis2_char_t*)bp->content, strlen(bp->content), "utf-8", AXIS2_XML_PARSER_TYPE_BUFFER);
-				om_node = ws_util_read_payload(reader, env);
-				xmlOutputBufferClose(p);
-				xmlBufferFree(bp);
-				/*
-				if(om_node)
-					php_printf("%s", AXIOM_NODE_TO_STRING(om_node, env));
-				else
-					php_printf("node null");
-				*/
-				ws_util_set_options(this_ptr, env, client_options, svc_client, 0 TSRMLS_CC);
-				result_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, om_node);
-				if(!result_node){
-					return;
-				}else{
-
-					axis2_char_t *buffer = NULL;
-					int buffer_length = 0;
-
-					buffer = AXIOM_NODE_TO_STRING(result_node, env);
-					if(buffer){
-						buffer_length = strlen(buffer);
-						parse_response(this_ptr, buffer, buffer_length,fn, function , return_value TSRMLS_CC);
-					}
-					else
-						return;
-				}
- 			}
-			xmlFreeDoc(request);
-			zval_dtor(&response);
-
- 		} else {
- 			smart_str error = {0};
- 			smart_str_appends(&error,"Function (\"");
- 			smart_str_appends(&error,function);
- 			smart_str_appends(&error,"\") is not a valid method for this service");
- 			smart_str_0(&error);
-			add_soap_fault(this_ptr, "Client", error.c, NULL, NULL TSRMLS_CC);
-			smart_str_free(&error);
-		}
-	} else {
-#ifdef NW		
-		zval **uri;
-		smart_str action = {0};
-
-		if (zend_hash_find(Z_OBJPROP_P(this_ptr), "uri", sizeof("uri"), (void *)&uri) == FAILURE) {
-			add_soap_fault(this_ptr, "Client", "Error finding \"uri\" property", NULL, NULL TSRMLS_CC);
-		} else if (location == NULL) {
-			add_soap_fault(this_ptr, "Client", "Error could not find \"location\" property", NULL, NULL TSRMLS_CC);
-		} else {
-			if (call_uri == NULL) {
-				call_uri = Z_STRVAL_PP(uri);
-			}
-	 		request = serialize_function_call(this_ptr, NULL, function, call_uri, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
-
-	 		if (soap_action == NULL) {
-				smart_str_appends(&action, call_uri);
-				smart_str_appendc(&action, '#');
-				smart_str_appends(&action, function);
-			} else {
-				smart_str_appends(&action, soap_action);
-			}
-			smart_str_0(&action);
-
-			ret = do_request(this_ptr, request, location, action.c, soap_version, 0, &response TSRMLS_CC);
-
-	 		smart_str_free(&action);
-			xmlFreeDoc(request);
-
-			if (ret && Z_TYPE(response) == IS_STRING) {
-				/*
-				ret = parse_packet_soap(this_ptr, Z_STRVAL(response), Z_STRLEN(response), NULL, function, return_value, output_headers TSRMLS_CC);
-				*/
-			}
-
-			zval_dtor(&response);
-		}
-#endif
- 	}
-/*
-	if (!ret) {
-		zval** fault;
-		if (zend_hash_find(Z_OBJPROP_P(this_ptr), "__soap_fault", sizeof("__soap_fault"), (void **) &fault) == SUCCESS) {
-			*return_value = **fault;
-			zval_copy_ctor(return_value);
-		} else {
-			*return_value = *add_soap_fault(this_ptr, "Client", "Unknown Error", NULL, NULL TSRMLS_CC);
-			zval_copy_ctor(return_value);
-		}
-	} else {
-		zval** fault;
-		if (zend_hash_find(Z_OBJPROP_P(this_ptr), "__soap_fault", sizeof("__soap_fault"), (void **) &fault) == SUCCESS) {
-			*return_value = **fault;
-			zval_copy_ctor(return_value);
-		}
-	}
-#ifdef ZEND_ENGINE_2
-	if (!EG(exception) &&
-	    Z_TYPE_P(return_value) == IS_OBJECT &&
-	    instanceof_function(Z_OBJCE_P(return_value), ws_fault_class_entry TSRMLS_CC) &&
-	    (zend_hash_find(Z_OBJPROP_P(this_ptr), "_exceptions", sizeof("_exceptions"), (void **) &tmp) != SUCCESS ||
-		   Z_TYPE_PP(tmp) != IS_BOOL || Z_LVAL_PP(tmp) != 0)) {
-		zval *exception;
-
-		MAKE_STD_ZVAL(exception);
-		*exception = *return_value;
-		zval_copy_ctor(exception);
-		INIT_PZVAL(exception);
-		zend_throw_exception_object(exception TSRMLS_CC);
-	}
-#endif
-*/
-	if (WSF_GLOBAL(encoding) != NULL) {
-		xmlCharEncCloseFunc(WSF_GLOBAL(encoding));
-	}
-	WSF_GLOBAL(features) = old_features;
-	WSF_GLOBAL(typemap) = old_typemap;
-	WSF_GLOBAL(class_map) = old_class_map;
-	WSF_GLOBAL(encoding) = old_encoding;
-	WSF_GLOBAL(sdl) = old_sdl;
-	
-}
-
-
-#ifdef SER
-static void deserialize_parameters(xmlNodePtr params, sdlFunctionPtr function, int *num_params, zval ***parameters)
-{
-	int cur_param = 0,num_of_params = 0;
-	zval **tmp_parameters = NULL;
-
-	if (function != NULL) {
-		sdlParamPtr *param;
-		xmlNodePtr val;
-		int	use_names = 0;
-
-		if (function->requestParameters == NULL) {
-			return;
-		}
-		num_of_params = zend_hash_num_elements(function->requestParameters);
-		zend_hash_internal_pointer_reset(function->requestParameters);
-		while (zend_hash_get_current_data(function->requestParameters, (void **)&param) == SUCCESS) {
-			if (get_node(params, (*param)->paramName) != NULL) {
-				use_names = 1;
-			}
-			zend_hash_move_forward(function->requestParameters);
-		}
-		if (use_names) {
-			tmp_parameters = safe_emalloc(num_of_params, sizeof(zval *), 0);
-			zend_hash_internal_pointer_reset(function->requestParameters);
-			while (zend_hash_get_current_data(function->requestParameters, (void **)&param) == SUCCESS) {
-				val = get_node(params, (*param)->paramName);
-				if (!val) {
-					/* TODO: may be "nil" is not OK? */
-					MAKE_STD_ZVAL(tmp_parameters[cur_param]);
-					ZVAL_NULL(tmp_parameters[cur_param]);
-				} else {
-					tmp_parameters[cur_param] = master_to_zval((*param)->encode, val);
-				}
-				cur_param++;
-
-				zend_hash_move_forward(function->requestParameters);
-			}
-			(*parameters) = tmp_parameters;
-			(*num_params) = num_of_params;
-			return;
-		}
-	}
-	if (params) {
-		xmlNodePtr trav;
-
-		num_of_params = 0;
-		trav = params;
-		while (trav != NULL) {
-			if (trav->type == XML_ELEMENT_NODE) {
-				num_of_params++;
-			}
-			trav = trav->next;
-		}
-		if (num_of_params > 0) {
-			tmp_parameters = safe_emalloc(num_of_params, sizeof(zval *), 0);
-
-			trav = params;
-			while (trav != 0 && cur_param < num_of_params) {
-				if (trav->type == XML_ELEMENT_NODE) {
-					encodePtr enc;
-					sdlParamPtr *param = NULL;
-					if (function != NULL &&
-					    zend_hash_index_find(function->requestParameters, cur_param, (void **)&param) == FAILURE) {
-						TSRMLS_FETCH();
-						soap_server_fault("Client", "Error cannot find parameter", NULL, NULL, NULL TSRMLS_CC);
-					}
-					if (param == NULL) {
-						enc = NULL;
-					} else {
-						enc = (*param)->encode;
-					}
-					tmp_parameters[cur_param] = master_to_zval(enc, trav);
-					cur_param++;
-				}
-				trav = trav->next;
-			}
-		}
-	}
-	if (num_of_params > cur_param) {
-		TSRMLS_FETCH();
-		soap_server_fault("Client","Missing parameter", NULL, NULL, NULL TSRMLS_CC);
-	}
-	(*parameters) = tmp_parameters;
-	(*num_params) = num_of_params;
-}
-#endif
-
-static sdlFunctionPtr find_function(sdlPtr sdl, xmlNodePtr func, zval* function_name)
-{
-	sdlFunctionPtr function;
-
-	function = get_function(sdl, (char*)func->name);
-	if (function && function->binding && function->binding->bindingType == BINDING_SOAP) {
-		sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-		if (fnb->style == SOAP_DOCUMENT) {
-			function = NULL;
-		}
-	}
-	if (sdl != NULL && function == NULL) {
-		function = get_doc_function(sdl, func);
-	}
-
-	INIT_ZVAL(*function_name);
-	if (function != NULL) {
-		ZVAL_STRING(function_name, (char *)function->functionName, 1);
-	} else {
-		ZVAL_STRING(function_name, (char *)func->name, 1);
-	}
-
-	return function;
-}
-
-#ifdef SER
-static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, char* actor, zval *function_name, int *num_params, zval ***parameters, int *version, soapHeader **headers TSRMLS_DC)
-{
-	char* envelope_ns = NULL;
-	xmlNodePtr trav,env,head,body,func;
-	xmlAttrPtr attr;
-	sdlFunctionPtr function;
-
-	/* Get <Envelope> element */
-	env = NULL;
-	trav = request->children;
-	while (trav != NULL) {
-		if (trav->type == XML_ELEMENT_NODE) {
-			if (env == NULL && node_is_equal_ex(trav,"Envelope",SOAP_1_1_ENV_NAMESPACE)) {
-				env = trav;
-				*version = SOAP_1_1;
-				envelope_ns = SOAP_1_1_ENV_NAMESPACE;
-				WSF_GLOBAL(soap_version) = SOAP_1_1;
-			} else if (env == NULL && node_is_equal_ex(trav,"Envelope",SOAP_1_2_ENV_NAMESPACE)) {
-				env = trav;
-				*version = SOAP_1_2;
-				envelope_ns = SOAP_1_2_ENV_NAMESPACE;
-				WSF_GLOBAL(soap_version) = SOAP_1_2;
-			} else {
-				soap_server_fault("VersionMismatch", "Wrong Version", NULL, NULL, NULL TSRMLS_CC);
-			}
-		}
-		trav = trav->next;
-	}
-	if (env == NULL) {
-		soap_server_fault("Client", "looks like we got XML without \"Envelope\" element", NULL, NULL, NULL TSRMLS_CC);
-	}
-
-	attr = env->properties;
-	while (attr != NULL) {
-		if (attr->ns == NULL) {
-			soap_server_fault("Client", "A SOAP Envelope element cannot have non Namespace qualified attributes", NULL, NULL, NULL TSRMLS_CC);
-		} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-			if (*version == SOAP_1_2) {
-				soap_server_fault("Client", "encodingStyle cannot be specified on the Envelope", NULL, NULL, NULL TSRMLS_CC);
-			} else if (strcmp((char*)attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) {
-				soap_server_fault("Client", "Unknown data encoding style", NULL, NULL, NULL TSRMLS_CC);
-			}
-		}
-		attr = attr->next;
-	}
-
-	/* Get <Header> element */
-	head = NULL;
-	trav = env->children;
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (trav != NULL && node_is_equal_ex(trav,"Header",envelope_ns)) {
-		head = trav;
-		trav = trav->next;
-	}
-
-	/* Get <Body> element */
-	body = NULL;
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (trav != NULL && node_is_equal_ex(trav,"Body",envelope_ns)) {
-		body = trav;
-		trav = trav->next;
-	}
-	while (trav != NULL && trav->type != XML_ELEMENT_NODE) {
-		trav = trav->next;
-	}
-	if (body == NULL) {
-		soap_server_fault("Client", "Body must be present in a SOAP envelope", NULL, NULL, NULL TSRMLS_CC);
-	}
-	attr = body->properties;
-	while (attr != NULL) {
-		if (attr->ns == NULL) {
-			if (*version == SOAP_1_2) {
-				soap_server_fault("Client", "A SOAP Body element cannot have non Namespace qualified attributes", NULL, NULL, NULL TSRMLS_CC);
-			}
-		} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-			if (*version == SOAP_1_2) {
-				soap_server_fault("Client", "encodingStyle cannot be specified on the Body", NULL, NULL, NULL TSRMLS_CC);
-			} else if (strcmp((char*)attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) {
-				soap_server_fault("Client", "Unknown data encoding style", NULL, NULL, NULL TSRMLS_CC);
-			}
-		}
-		attr = attr->next;
-	}
-
-	if (trav != NULL && *version == SOAP_1_2) {
-		soap_server_fault("Client", "A SOAP 1.2 envelope can contain only Header and Body", NULL, NULL, NULL TSRMLS_CC);
-	}
-
-	func = NULL;
-	trav = body->children;
-	while (trav != NULL) {
-		if (trav->type == XML_ELEMENT_NODE) {
-/*
-			if (func != NULL) {
-				soap_server_fault("Client", "looks like we got \"Body\" with several functions call", NULL, NULL, NULL TSRMLS_CC);
-			}
-*/
-			func = trav;
-			break; /* FIXME: the rest of body is ignored */
-		}
-		trav = trav->next;
-	}
-	if (func == NULL) {
-		function = get_doc_function(sdl, NULL);
-		if (function != NULL) {
-			INIT_ZVAL(*function_name);
-			ZVAL_STRING(function_name, (char *)function->functionName, 1);
-		} else {
-			soap_server_fault("Client", "looks like we got \"Body\" without function call", NULL, NULL, NULL TSRMLS_CC);
-		}
-	} else {
-		if (*version == SOAP_1_1) {
-			attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_1_ENV_NAMESPACE);
-			if (attr && strcmp((char*)attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) {
-				soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL, NULL TSRMLS_CC);
-			}
-		} else {
-			attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_2_ENV_NAMESPACE);
-			if (attr && strcmp((char*)attr->children->content,SOAP_1_2_ENC_NAMESPACE) != 0) {
-				soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL, NULL TSRMLS_CC);
-			}
-		}
-		function = find_function(sdl, func, function_name);
-		if (sdl != NULL && function == NULL) {
-			if (*version == SOAP_1_2) {
-				soap_server_fault("rpc:ProcedureNotPresent","Procedure not present", NULL, NULL, NULL TSRMLS_CC);
-			} else {
-				php_error(E_ERROR, "Procedure '%s' not present", func->name);
-			}
-		}
-	}
-
-	*headers = NULL;
-	if (head) {
-		soapHeader *h, *last = NULL;
-
-		attr = head->properties;
-		while (attr != NULL) {
-			if (attr->ns == NULL) {
-				soap_server_fault("Client", "A SOAP Header element cannot have non Namespace qualified attributes", NULL, NULL, NULL TSRMLS_CC);
-			} else if (attr_is_equal_ex(attr,"encodingStyle",SOAP_1_2_ENV_NAMESPACE)) {
-				if (*version == SOAP_1_2) {
-					soap_server_fault("Client", "encodingStyle cannot be specified on the Header", NULL, NULL, NULL TSRMLS_CC);
-				} else if (strcmp((char*)attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) {
-					soap_server_fault("Client", "Unknown data encoding style", NULL, NULL, NULL TSRMLS_CC);
-				}
-			}
-			attr = attr->next;
-		}
-		trav = head->children;
-		while (trav != NULL) {
-			if (trav->type == XML_ELEMENT_NODE) {
-				xmlNodePtr hdr_func = trav;
-				xmlAttrPtr attr;
-				int mustUnderstand = 0;
-
-				if (*version == SOAP_1_1) {
-					attr = get_attribute_ex(hdr_func->properties,"encodingStyle",SOAP_1_1_ENV_NAMESPACE);
-					if (attr && strcmp((char*)attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) {
-						soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL, NULL TSRMLS_CC);
-					}
-					attr = get_attribute_ex(hdr_func->properties,"actor",envelope_ns);
-					if (attr != NULL) {
-						if (strcmp((char*)attr->children->content,SOAP_1_1_ACTOR_NEXT) != 0 &&
-						    (actor == NULL || strcmp((char*)attr->children->content,actor) != 0)) {
-						  goto ignore_header;
-						}
-					}
-				} else if (*version == SOAP_1_2) {
-					attr = get_attribute_ex(hdr_func->properties,"encodingStyle",SOAP_1_2_ENV_NAMESPACE);
-					if (attr && strcmp((char*)attr->children->content,SOAP_1_2_ENC_NAMESPACE) != 0) {
-						soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL, NULL TSRMLS_CC);
-					}
-					attr = get_attribute_ex(hdr_func->properties,"role",envelope_ns);
-					if (attr != NULL) {
-						if (strcmp((char*)attr->children->content,SOAP_1_2_ACTOR_UNLIMATERECEIVER) != 0 &&
-						    strcmp((char*)attr->children->content,SOAP_1_2_ACTOR_NEXT) != 0 &&
-						    (actor == NULL || strcmp((char*)attr->children->content,actor) != 0)) {
-						  goto ignore_header;
-						}
-					}
-				}
-				attr = get_attribute_ex(hdr_func->properties,"mustUnderstand",envelope_ns);
-				if (attr) {
-					if (strcmp((char*)attr->children->content,"1") == 0 ||
-					    strcmp((char*)attr->children->content,"true") == 0) {
-						mustUnderstand = 1;
-					} else if (strcmp((char*)attr->children->content,"0") == 0 ||
-					           strcmp((char*)attr->children->content,"false") == 0) {
-						mustUnderstand = 0;
-					} else {
-						soap_server_fault("Client","mustUnderstand value is not boolean", NULL, NULL, NULL TSRMLS_CC);
-					}
-				}
-				h = emalloc(sizeof(soapHeader));
-				memset(h, 0, sizeof(soapHeader));
-				h->mustUnderstand = mustUnderstand;
-				h->function = find_function(sdl, hdr_func, &h->function_name);
-				if (!h->function && sdl && function && function->binding && function->binding->bindingType == BINDING_SOAP) {
-					sdlSoapBindingFunctionHeaderPtr *hdr;
-					sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-					if (fnb->input.headers) {
-						smart_str key = {0};
-
-						if (hdr_func->ns) {
-							smart_str_appends(&key, (char*)hdr_func->ns->href);
-							smart_str_appendc(&key, ':');
-						}
-						smart_str_appendl(&key, Z_STRVAL(h->function_name), Z_STRLEN(h->function_name));
-						smart_str_0(&key);
-						if (zend_hash_find(fnb->input.headers, key.c, key.len+1, (void**)&hdr) == SUCCESS) {
-							h->hdr = *hdr;
-						}
-						smart_str_free(&key);
-					}
-				}
-				if (h->hdr) {
-					h->num_params = 1;
-					h->parameters = emalloc(sizeof(zval*));
-					h->parameters[0] = master_to_zval(h->hdr->encode, hdr_func);
-				} else {
-					if (h->function && h->function->binding && h->function->binding->bindingType == BINDING_SOAP) {
-						sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)h->function->bindingAttributes;
-						if (fnb->style == SOAP_RPC) {
-							hdr_func = hdr_func->children;
-						}
-					}
-					deserialize_parameters(hdr_func, h->function, &h->num_params, &h->parameters);
-				}
-				INIT_ZVAL(h->retval);
-				if (last == NULL) {
-					*headers = h;
-				} else {
-					last->next = h;
-				}
-				last = h;
-			}
-ignore_header:
-			trav = trav->next;
-		}
-	}
-
-	if (function && function->binding && function->binding->bindingType == BINDING_SOAP) {
-		sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-		if (fnb->style == SOAP_RPC) {
-			func = func->children;
-		}
-	} else {
-		func = func->children;
-	}
-	deserialize_parameters(func, function, num_params, parameters);
-	return function;
-}
-#endif
-
-static int serialize_response_call2(xmlNodePtr body, sdlFunctionPtr function, char *function_name, char *uri, zval *ret, int version, int main TSRMLS_DC)
-{
-	xmlNodePtr method = NULL, param;
-	sdlParamPtr parameter = NULL;
-	int param_count;
-	int style, use;
-	xmlNsPtr ns = NULL;
-
-	if (function != NULL && function->binding->bindingType == BINDING_SOAP) {
-		sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-
-		style = fnb->style;
-		use = fnb->output.use;
-		if (style == SOAP_RPC) {
-			ns = encode_add_ns(body, fnb->output.ns);
-			if (function->responseName) {
-				method = xmlNewChild(body, ns, BAD_CAST(function->responseName), NULL);
-			} else if (function->responseParameters) {
-				method = xmlNewChild(body, ns, BAD_CAST(function->functionName), NULL);
-			}
-		}
-	} else {
-		style = main?SOAP_RPC:SOAP_DOCUMENT;
-		use = main?SOAP_ENCODED:SOAP_LITERAL;
-		if (style == SOAP_RPC) {
-			ns = encode_add_ns(body, uri);
-			method = xmlNewChild(body, ns, BAD_CAST(function_name), NULL);
-		}
-	}
-
-	if (function != NULL) {
-		if (function->responseParameters) {
-			param_count = zend_hash_num_elements(function->responseParameters);
-		} else {
-		  param_count = 0;
-		}
-	} else {
-	  param_count = 1;
-	}
-
-	if (param_count == 1) {
-		parameter = get_param(function, NULL, 0, TRUE);
-
-		if (style == SOAP_RPC) {
-		  xmlNode *rpc_result;
-			if (main && version == SOAP_1_2) {
-				xmlNs *rpc_ns = xmlNewNs(body, BAD_CAST(RPC_SOAP12_NAMESPACE), BAD_CAST(RPC_SOAP12_NS_PREFIX));
-				rpc_result = xmlNewChild(method, rpc_ns, BAD_CAST("result"), NULL);
-				param = serialize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC);
-				xmlNodeSetContent(rpc_result,param->name);
-			} else {
-				param = serialize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC);
-			}
-		} else {
-			param = serialize_parameter(parameter, ret, 0, "return", use, body TSRMLS_CC);
-			if (function && function->binding->bindingType == BINDING_SOAP) {
-				if (parameter && parameter->element) {
-					ns = encode_add_ns(param, parameter->element->namens);
-					xmlNodeSetName(param, BAD_CAST(parameter->element->name));
-					xmlSetNs(param, ns);
-				}
-			} else if (strcmp((char*)param->name,"return") == 0) {
-				ns = encode_add_ns(param, uri);
-				xmlNodeSetName(param, BAD_CAST(function_name));
-				xmlSetNs(param, ns);
-			}
-		}
-	} else if (param_count > 1 && Z_TYPE_P(ret) == IS_ARRAY) {
-		HashPosition pos;
-		zval **data;
-		int i = 0;
-
-		zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(ret), &pos);
-		while (zend_hash_get_current_data_ex(Z_ARRVAL_P(ret), (void **)&data, &pos) != FAILURE) {
-			char *param_name = NULL;
-			unsigned int param_name_len;
-			ulong param_index = i;
-
-			zend_hash_get_current_key_ex(Z_ARRVAL_P(ret), &param_name, &param_name_len, &param_index, 0, &pos);
-			parameter = get_param(function, param_name, param_index, TRUE);
-			if (style == SOAP_RPC) {
-				param = serialize_parameter(parameter, *data, i, param_name, use, method TSRMLS_CC);
-			} else {
-				param = serialize_parameter(parameter, *data, i, param_name, use, body TSRMLS_CC);
-				if (function && function->binding->bindingType == BINDING_SOAP) {
-					if (parameter && parameter->element) {
-						ns = encode_add_ns(param, parameter->element->namens);
-						xmlNodeSetName(param, BAD_CAST(parameter->element->name));
-						xmlSetNs(param, ns);
-					}
-				}
-			}
-
-			zend_hash_move_forward_ex(Z_ARRVAL_P(ret), &pos);
-			i++;
-		}
-	}
-	if (use == SOAP_ENCODED && version == SOAP_1_2 && method != NULL) {
-		xmlSetNsProp(method, body->ns, BAD_CAST("encodingStyle"), BAD_CAST(SOAP_1_2_ENC_NAMESPACE));
-	}
-	return use;
-}
-
-#ifdef SER
-static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function_name, char *uri, zval *ret, soapHeader* headers, int version TSRMLS_DC)
-{
-	xmlDocPtr doc;
-	xmlNodePtr envelope = NULL, body, param;
-	xmlNsPtr ns = NULL;
-	int use = SOAP_LITERAL;
-	xmlNodePtr head = NULL;
-
-	encode_reset_ns();
-
-	doc = xmlNewDoc(BAD_CAST("1.0"));
-	doc->charset = XML_CHAR_ENCODING_UTF8;
-	doc->encoding = xmlCharStrdup("UTF-8");
-
-	if (version == SOAP_1_1) {
-		envelope = xmlNewDocNode(doc, NULL, BAD_CAST("Envelope"), NULL);
-		ns = xmlNewNs(envelope, BAD_CAST(SOAP_1_1_ENV_NAMESPACE), BAD_CAST(SOAP_1_1_ENV_NS_PREFIX));
-		xmlSetNs(envelope,ns);
-	} else if (version == SOAP_1_2) {
-		envelope = xmlNewDocNode(doc, NULL, BAD_CAST("Envelope"), NULL);
-		ns = xmlNewNs(envelope, BAD_CAST(SOAP_1_2_ENV_NAMESPACE), BAD_CAST(SOAP_1_2_ENV_NS_PREFIX));
-		xmlSetNs(envelope,ns);
-	} else {
-		soap_server_fault("Server", "Unknown SOAP version", NULL, NULL, NULL TSRMLS_CC);
-	}
-	xmlDocSetRootElement(doc, envelope);
-
-	if (Z_TYPE_P(ret) == IS_OBJECT &&
-	    instanceof_function(Z_OBJCE_P(ret), soap_fault_class_entry TSRMLS_CC)) {
-	  char *detail_name;
-		HashTable* prop;
-		zval **tmp;
-		sdlFaultPtr fault = NULL;
-		char *fault_ns = NULL;
-
-		prop = Z_OBJPROP_P(ret);
-
-		if (headers &&
-		    zend_hash_find(prop, "headerfault", sizeof("headerfault"), (void**)&tmp) == SUCCESS) {
-			xmlNodePtr head;
-			encodePtr hdr_enc = NULL;
-			int hdr_use = SOAP_LITERAL;
-			zval *hdr_ret  = *tmp;
-			char *hdr_ns   = headers->hdr?headers->hdr->ns:NULL;
-			char *hdr_name = Z_STRVAL(headers->function_name);
-
-			head = xmlNewChild(envelope, ns, BAD_CAST("Header"), NULL);
-			if (Z_TYPE_P(hdr_ret) == IS_OBJECT &&
-			    instanceof_function(Z_OBJCE_P(hdr_ret), soap_header_class_entry TSRMLS_CC)) {
-				HashTable* ht = Z_OBJPROP_P(hdr_ret);
-				zval **tmp;
-				sdlSoapBindingFunctionHeaderPtr *hdr;
-				smart_str key = {0};
-
-				if (zend_hash_find(ht, "namespace", sizeof("namespace"), (void**)&tmp) == SUCCESS &&
-			      Z_TYPE_PP(tmp) == IS_STRING) {
-					smart_str_appendl(&key, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
-					smart_str_appendc(&key, ':');
-					hdr_ns = Z_STRVAL_PP(tmp);
-				}
-				if (zend_hash_find(ht, "name", sizeof("name"), (void**)&tmp) == SUCCESS &&
-				    Z_TYPE_PP(tmp) == IS_STRING) {
-					smart_str_appendl(&key, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
-					hdr_name = Z_STRVAL_PP(tmp);
-				}
-				smart_str_0(&key);
-				if (headers->hdr && headers->hdr->headerfaults &&
-				    zend_hash_find(headers->hdr->headerfaults, key.c, key.len+1, (void**)&hdr) == SUCCESS) {
-					hdr_enc = (*hdr)->encode;
-					hdr_use = (*hdr)->use;
-				}
-				smart_str_free(&key);
-				if (zend_hash_find(ht, "data", sizeof("data"), (void**)&tmp) == SUCCESS) {
-					hdr_ret = *tmp;
-				} else {
-					hdr_ret = NULL;
-				}
-			}
-
-			if (headers->function) {
-				if (serialize_response_call2(head, headers->function, Z_STRVAL(headers->function_name), uri, hdr_ret, version, 0 TSRMLS_CC) == SOAP_ENCODED) {
-					use = SOAP_ENCODED;
-				}
-			} else {
-				xmlNodePtr xmlHdr = master_to_xml(hdr_enc, hdr_ret, hdr_use, head);
-				if (hdr_name) {
-					xmlNodeSetName(xmlHdr, BAD_CAST(hdr_name));
-				}
-				if (hdr_ns) {
-					xmlNsPtr nsptr = encode_add_ns(xmlHdr, hdr_ns);
-					xmlSetNs(xmlHdr, nsptr);
-				}
-			}
-		}
-
-		body = xmlNewChild(envelope, ns, BAD_CAST("Body"), NULL);
-		param = xmlNewChild(body, ns, BAD_CAST("Fault"), NULL);
-
-		if (zend_hash_find(prop, "faultcodens", sizeof("faultcodens"), (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING) {
-			fault_ns = Z_STRVAL_PP(tmp);
-		}
-		use = SOAP_LITERAL;
-		if (zend_hash_find(prop, "_name", sizeof("_name"), (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING) {
-			sdlFaultPtr *tmp_fault;
-			if (function && function->faults &&
-			    zend_hash_find(function->faults, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)+1, (void**)&tmp_fault) == SUCCESS) {
-			  fault = *tmp_fault;
-				if (function->binding &&
-				    function->binding->bindingType == BINDING_SOAP &&
-				    fault->bindingAttributes) {
-					sdlSoapBindingFunctionFaultPtr fb = (sdlSoapBindingFunctionFaultPtr)fault->bindingAttributes;
-					use = fb->use;
-					if (fault_ns == NULL) {
-						fault_ns = fb->ns;
-					}
-				}
-			}
-		} else if (function && function->faults &&
-		           zend_hash_num_elements(function->faults) == 1) {
-
-			zend_hash_internal_pointer_reset(function->faults);
-			zend_hash_get_current_data(function->faults, (void**)&fault);
-			fault = *(sdlFaultPtr*)fault;
-			if (function->binding &&
-			    function->binding->bindingType == BINDING_SOAP &&
-			    fault->bindingAttributes) {
-				sdlSoapBindingFunctionFaultPtr fb = (sdlSoapBindingFunctionFaultPtr)fault->bindingAttributes;
-				use = fb->use;
-				if (fault_ns == NULL) {
-				  fault_ns = fb->ns;
-				}
-			}
-		}
-
-		if (fault_ns == NULL &&
-		    fault && 
-		    fault->details && 
-		    zend_hash_num_elements(fault->details) == 1) {
-			sdlParamPtr sparam;
-
-			zend_hash_internal_pointer_reset(fault->details);
-			zend_hash_get_current_data(fault->details, (void**)&sparam);
-			sparam = *(sdlParamPtr*)sparam;
-			if (sparam->element) {
-				fault_ns = sparam->element->namens;
-			}
-		}
-
-		if (version == SOAP_1_1) {
-			if (zend_hash_find(prop, "faultcode", sizeof("faultcode"), (void**)&tmp) == SUCCESS) {
-				int new_len;
-				xmlNodePtr node = xmlNewNode(NULL, BAD_CAST("faultcode"));
-				char *str = php_escape_html_entities((unsigned char*)Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), &new_len, 0, 0, NULL TSRMLS_CC);
-				xmlAddChild(param, node);
-				if (fault_ns) {
-					xmlNsPtr nsptr = encode_add_ns(node, fault_ns);
-					xmlChar *code = xmlBuildQName(BAD_CAST(str), nsptr->prefix, NULL, 0);
-					xmlNodeSetContent(node, code);
-					xmlFree(code);
-				} else {	
-					xmlNodeSetContentLen(node, BAD_CAST(str), new_len);
-				}
-				efree(str);
-			}
-			if (zend_hash_find(prop, "faultstring", sizeof("faultstring"), (void**)&tmp) == SUCCESS) {
-				xmlNodePtr node = master_to_xml(get_conversion(IS_STRING), *tmp, SOAP_LITERAL, param);
-				xmlNodeSetName(node, BAD_CAST("faultstring"));
-			}
-			if (zend_hash_find(prop, "faultactor", sizeof("faultactor"), (void**)&tmp) == SUCCESS) {
-				xmlNodePtr node = master_to_xml(get_conversion(IS_STRING), *tmp, SOAP_LITERAL, param);
-				xmlNodeSetName(node, BAD_CAST("faultactor"));
-			}
-			detail_name = "detail";
-		} else {
-			if (zend_hash_find(prop, "faultcode", sizeof("faultcode"), (void**)&tmp) == SUCCESS) {
-				int new_len;
-				xmlNodePtr node = xmlNewChild(param, ns, BAD_CAST("Code"), NULL);
-				char *str = php_escape_html_entities((unsigned char*)Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), &new_len, 0, 0, NULL TSRMLS_CC);
-				node = xmlNewChild(node, ns, BAD_CAST("Value"), NULL);
-				if (fault_ns) {
-					xmlNsPtr nsptr = encode_add_ns(node, fault_ns);
-					xmlChar *code = xmlBuildQName(BAD_CAST(str), nsptr->prefix, NULL, 0);
-					xmlNodeSetContent(node, code);
-					xmlFree(code);
-				} else {	
-					xmlNodeSetContentLen(node, BAD_CAST(str), new_len);
-				}
-				efree(str);
-			}
-			if (zend_hash_find(prop, "faultstring", sizeof("faultstring"), (void**)&tmp) == SUCCESS) {
-				xmlNodePtr node = xmlNewChild(param, ns, BAD_CAST("Reason"), NULL);
-				node = master_to_xml(get_conversion(IS_STRING), *tmp, SOAP_LITERAL, node);
-				xmlNodeSetName(node, BAD_CAST("Text"));
-				xmlSetNs(node, ns);
-			}
-			detail_name = SOAP_1_2_ENV_NS_PREFIX":Detail";
-		}
-		if (fault && fault->details && zend_hash_num_elements(fault->details) == 1) {
-			xmlNodePtr node;
-			zval *detail = NULL;
-			sdlParamPtr sparam;
-			xmlNodePtr x;
-
-			if (zend_hash_find(prop, "detail", sizeof("detail"), (void**)&tmp) == SUCCESS &&
-			    Z_TYPE_PP(tmp) != IS_NULL) {
-				detail = *tmp;
-			}
-			node = xmlNewNode(NULL, BAD_CAST(detail_name));
-			xmlAddChild(param, node);
-
-			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 &&
-			    function->binding &&
-			    function->binding->bindingType == BINDING_SOAP &&
-			    function->bindingAttributes) {
-				sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-				if (fnb->style == SOAP_RPC && !sparam->element) {
-				  if (fault->bindingAttributes) {
-						sdlSoapBindingFunctionFaultPtr fb = (sdlSoapBindingFunctionFaultPtr)fault->bindingAttributes;
-						if (fb->ns) {
-							xmlNsPtr ns = encode_add_ns(x, fb->ns);
-							xmlSetNs(x, ns);
-						}
-					}
-				} else {
-					if (sparam->element) {
-						xmlNsPtr ns = encode_add_ns(x, sparam->element->namens);
-						xmlNodeSetName(x, BAD_CAST(sparam->element->name));
-						xmlSetNs(x, ns);
-					}
-				}
-			}
-			if (use == SOAP_ENCODED && version == SOAP_1_2) {
-				xmlSetNsProp(x, envelope->ns, BAD_CAST("encodingStyle"), BAD_CAST(SOAP_1_2_ENC_NAMESPACE));
-			}
-		} else if (zend_hash_find(prop, "detail", sizeof("detail"), (void**)&tmp) == SUCCESS &&
-		    Z_TYPE_PP(tmp) != IS_NULL) {
-			serialize_zval(*tmp, NULL, detail_name, use, param TSRMLS_CC);
-		}
-	} else {
-
-		if (headers) {
-			soapHeader *h;
-
-			head = xmlNewChild(envelope, ns, BAD_CAST("Header"), NULL);
-			h = headers;
-			while (h != NULL) {
-				if (Z_TYPE(h->retval) != IS_NULL) {
-					encodePtr hdr_enc = NULL;
-					int hdr_use = SOAP_LITERAL;
-					zval *hdr_ret = &h->retval;
-					char *hdr_ns   = h->hdr?h->hdr->ns:NULL;
-					char *hdr_name = Z_STRVAL(h->function_name);
-
-
-					if (Z_TYPE(h->retval) == IS_OBJECT &&
-					    instanceof_function(Z_OBJCE(h->retval), soap_header_class_entry TSRMLS_CC)) {
-						HashTable* ht = Z_OBJPROP(h->retval);
-						zval **tmp;
-						sdlSoapBindingFunctionHeaderPtr *hdr;
-						smart_str key = {0};
-
-						if (zend_hash_find(ht, "namespace", sizeof("namespace"), (void**)&tmp) == SUCCESS &&
-					      Z_TYPE_PP(tmp) == IS_STRING) {
-							smart_str_appendl(&key, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
-							smart_str_appendc(&key, ':');
-							hdr_ns = Z_STRVAL_PP(tmp);
-						}
-						if (zend_hash_find(ht, "name", sizeof("name"), (void**)&tmp) == SUCCESS &&
-						    Z_TYPE_PP(tmp) == IS_STRING) {
-							smart_str_appendl(&key, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
-							hdr_name = Z_STRVAL_PP(tmp);
-						}
-						smart_str_0(&key);
-						if (function && function->binding && function->binding->bindingType == BINDING_SOAP) {
-							sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)function->bindingAttributes;
-
-							if (fnb->output.headers &&
-							    zend_hash_find(fnb->output.headers, key.c, key.len+1, (void**)&hdr) == SUCCESS) {
-								hdr_enc = (*hdr)->encode;
-								hdr_use = (*hdr)->use;
-							}
-						}
-						smart_str_free(&key);
-						if (zend_hash_find(ht, "data", sizeof("data"), (void**)&tmp) == SUCCESS) {
-							hdr_ret = *tmp;
-						} else {
-							hdr_ret = NULL;
-						}
-					}
-
-					if (h->function) {
-						if (serialize_response_call2(head, h->function, Z_STRVAL(h->function_name), uri, hdr_ret, version, 0 TSRMLS_CC) == SOAP_ENCODED) {
-							use = SOAP_ENCODED;
-						}
-					} else {
-						xmlNodePtr xmlHdr = master_to_xml(hdr_enc, hdr_ret, hdr_use, head);
-						if (hdr_name) {
-							xmlNodeSetName(xmlHdr, BAD_CAST(hdr_name));
-						}
-						if (hdr_ns) {
-							xmlNsPtr nsptr = encode_add_ns(xmlHdr,hdr_ns);
-							xmlSetNs(xmlHdr, nsptr);
-						}
-					}
-				}
-				h = h->next;
-			}
-
-			if (head->children == NULL) {
-				xmlUnlinkNode(head);
-				xmlFreeNode(head);
-			}
-		}
-
-		body = xmlNewChild(envelope, ns, BAD_CAST("Body"), NULL);
-
-		if (serialize_response_call2(body, function, function_name, uri, ret, version, 1 TSRMLS_CC) == SOAP_ENCODED) {
-			use = SOAP_ENCODED;
-		}
-
-	}
-
-	if (use == SOAP_ENCODED) {
-		xmlNewNs(envelope, BAD_CAST(XSD_NAMESPACE), BAD_CAST(XSD_NS_PREFIX));
-		if (version == SOAP_1_1) {
-			xmlNewNs(envelope, BAD_CAST(SOAP_1_1_ENC_NAMESPACE), BAD_CAST(SOAP_1_1_ENC_NS_PREFIX));
-			xmlSetNsProp(envelope, envelope->ns, BAD_CAST("encodingStyle"), BAD_CAST(SOAP_1_1_ENC_NAMESPACE));
-		} else if (version == SOAP_1_2) {
-			xmlNewNs(envelope, BAD_CAST(SOAP_1_2_ENC_NAMESPACE), BAD_CAST(SOAP_1_2_ENC_NS_PREFIX));
-		}
-	}
-
-	if (function && function->responseName == NULL && 
-	    body->children == NULL && head == NULL) {
-		xmlFreeDoc(doc);
-		return NULL;
-	}
-	return doc;
-}
-#endif
-
-static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, int index, char *name, int style, xmlNodePtr parent TSRMLS_DC)
-{
-	char *paramName;
-	xmlNodePtr xmlParam;
-	char paramNameBuf[10];
-
-	if (param_val &&
-	    Z_TYPE_P(param_val) == IS_OBJECT &&
-	    Z_OBJCE_P(param_val) == ws_param_class_entry) {
-		zval **param_name;
-		zval **param_data;
-
-		if (zend_hash_find(Z_OBJPROP_P(param_val), "param_name", sizeof("param_name"), (void **)&param_name) == SUCCESS &&
-		    zend_hash_find(Z_OBJPROP_P(param_val), "param_data", sizeof("param_data"), (void **)&param_data) == SUCCESS) {
-			param_val = *param_data;
-			name = Z_STRVAL_PP(param_name);
-		}
-	}
-
-	if (param != NULL && param->paramName != NULL) {
-		paramName = param->paramName;
-	} else {
-		if (name == NULL) {
-			paramName = paramNameBuf;
-			sprintf(paramName,"param%d",index);
-		} else {
-			paramName = name;
-		}
-	}
-	php_printf("%s", paramName);
-	xmlParam = serialize_zval(param_val, param, paramName, style, parent TSRMLS_CC);
-
-	return xmlParam;
-}
-
-static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, int style, xmlNodePtr parent TSRMLS_DC)
-{
-	xmlNodePtr xmlParam;
-	encodePtr enc;
-	zval defval;
-
-	if (param != NULL) {
-		enc = param->encode;
-		if (val == NULL) {
-			if (param->element) {
-				if (param->element->fixed) {
-					ZVAL_STRING(&defval, param->element->fixed, 0);
-					val = &defval;
-				} else if (param->element->def && !param->element->nillable) {
-					ZVAL_STRING(&defval, param->element->def, 0);
-					val = &defval;
-				}
-			}
-		}
-	} else {
-		enc = NULL;
-	}
-	xmlParam = master_to_xml(enc, val, style, parent);
-	if (!strcmp((char*)xmlParam->name, "BOGUS")) {
-		xmlNodeSetName(xmlParam, BAD_CAST(paramName));
-	}
-	return xmlParam;
-}
-
-static sdlParamPtr get_param(sdlFunctionPtr function, char *param_name, int index, int response)
-{
-	sdlParamPtr *tmp;
-	HashTable   *ht;
-
-	if (function == NULL) {
-		return NULL;
-	}
-
-	if (response == FALSE) {
-		ht = function->requestParameters;
-	} else {
-		ht = function->responseParameters;
-	}
-
-	if (ht == NULL) {
-	  return NULL;
-	}
-
-	if (param_name != NULL) {
-		if (zend_hash_find(ht, param_name, strlen(param_name), (void **)&tmp) != FAILURE) {
-			return *tmp;
-		} else {
-			HashPosition pos;
-		
-			zend_hash_internal_pointer_reset_ex(ht, &pos);
-			while (zend_hash_get_current_data_ex(ht, (void **)&tmp, &pos) != FAILURE) {
-				if ((*tmp)->paramName && strcmp(param_name, (*tmp)->paramName) == 0) {
-					return *tmp;
-				}
-				zend_hash_move_forward_ex(ht, &pos);
-			}
-		}
-	} else {
-		if (zend_hash_index_find(ht, index, (void **)&tmp) != FAILURE) {
-			return (*tmp);
-		}
-	}
-	return NULL;
-}
-
-static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name)
-{
-	sdlFunctionPtr *tmp;
-
-	int len = strlen(function_name);
-	char *str = estrndup(function_name,len);
-	php_strtolower(str,len);
-	if (sdl != NULL) {
-		if (zend_hash_find(&sdl->functions, str, len+1, (void **)&tmp) != FAILURE) {
-			efree(str);
-			return (*tmp);
-		} else if (sdl->requests != NULL && zend_hash_find(sdl->requests, str, len+1, (void **)&tmp) != FAILURE) {
-			efree(str);
-			return (*tmp);
-		}
-	}
-	efree(str);
-	return NULL;
-}
-
-static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr params)
-{
-	if (sdl) {
-		sdlFunctionPtr *tmp;
-		sdlParamPtr    *param;
-
-		zend_hash_internal_pointer_reset(&sdl->functions);
-		while (zend_hash_get_current_data(&sdl->functions, (void**)&tmp) == SUCCESS) {
-			if ((*tmp)->binding && (*tmp)->binding->bindingType == BINDING_SOAP) {
-				sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)(*tmp)->bindingAttributes;
-				if (fnb->style == SOAP_DOCUMENT) {
-					if (params == NULL) {
-						if ((*tmp)->requestParameters == NULL ||
-						    zend_hash_num_elements((*tmp)->requestParameters) == 0) {
-						  return *tmp;
-						}
-					} else if ((*tmp)->requestParameters != NULL &&
-					           zend_hash_num_elements((*tmp)->requestParameters) > 0) {
-						int ok = 1;
-						xmlNodePtr node = params;
-
-						zend_hash_internal_pointer_reset((*tmp)->requestParameters);
-						while (zend_hash_get_current_data((*tmp)->requestParameters, (void**)&param) == SUCCESS) {
-							if ((*param)->element) {
-								if (strcmp((*param)->element->name, (char*)node->name) != 0) {
-									ok = 0;
-									break;
-								}
-								if ((*param)->element->namens != NULL && node->ns != NULL) {
-									if (strcmp((*param)->element->namens, (char*)node->ns->href) != 0) {
-										ok = 0;
-										break;
-									}
-								} else if ((void*)(*param)->element->namens != (void*)node->ns) {
-									ok = 0;
-									break;
-								}
-							} else if (strcmp((*param)->paramName, (char*)node->name) != 0) {
-								ok = 0;
-								break;
-							}
-							zend_hash_move_forward((*tmp)->requestParameters);
-						}
-						if (ok /*&& node == NULL*/) {
-							return (*tmp);
-						}
-					}
-				}
-			}
-			zend_hash_move_forward(&sdl->functions);
-		}
-	}
-	return NULL;
-}
-
-static void function_to_string(sdlFunctionPtr function, smart_str *buf)
-{
-	int i = 0;
-	HashPosition pos;
-	sdlParamPtr *param;
-
-	if (function->responseParameters &&
-	    zend_hash_num_elements(function->responseParameters) > 0) {
-		if (zend_hash_num_elements(function->responseParameters) == 1) {
-			zend_hash_internal_pointer_reset(function->responseParameters);
-			zend_hash_get_current_data(function->responseParameters, (void**)&param);
-			if ((*param)->encode && (*param)->encode->details.type_str) {
-				smart_str_appendl(buf, (*param)->encode->details.type_str, strlen((*param)->encode->details.type_str));
-				smart_str_appendc(buf, ' ');
-			} else {
-				smart_str_appendl(buf, "UNKNOWN ", 8);
-			}
-		} else {
-			i = 0;
-			smart_str_appendl(buf, "list(", 5);
-			zend_hash_internal_pointer_reset_ex(function->responseParameters, &pos);
-			while (zend_hash_get_current_data_ex(function->responseParameters, (void **)&param, &pos) != FAILURE) {
-				if (i > 0) {
-					smart_str_appendl(buf, ", ", 2);
-				}
-				if ((*param)->encode && (*param)->encode->details.type_str) {
-					smart_str_appendl(buf, (*param)->encode->details.type_str, strlen((*param)->encode->details.type_str));
-				} else {
-					smart_str_appendl(buf, "UNKNOWN", 7);
-				}
-				smart_str_appendl(buf, " $", 2);
-				smart_str_appendl(buf, (*param)->paramName, strlen((*param)->paramName));
-				zend_hash_move_forward_ex(function->responseParameters, &pos);
-				i++;
-			}
-			smart_str_appendl(buf, ") ", 2);
-		}
-	} else {
-		smart_str_appendl(buf, "void ", 5);
-	}
-
-	smart_str_appendl(buf, function->functionName, strlen(function->functionName));
-
-	smart_str_appendc(buf, '(');
-	if (function->requestParameters) {
-		i = 0;
-		zend_hash_internal_pointer_reset_ex(function->requestParameters, &pos);
-		while (zend_hash_get_current_data_ex(function->requestParameters, (void **)&param, &pos) != FAILURE) {
-			if (i > 0) {
-				smart_str_appendl(buf, ", ", 2);
-			}
-			if ((*param)->encode && (*param)->encode->details.type_str) {
-				smart_str_appendl(buf, (*param)->encode->details.type_str, strlen((*param)->encode->details.type_str));
-			} else {
-				smart_str_appendl(buf, "UNKNOWN", 7);
-			}
-			smart_str_appendl(buf, " $", 2);
-			smart_str_appendl(buf, (*param)->paramName, strlen((*param)->paramName));
-			zend_hash_move_forward_ex(function->requestParameters, &pos);
-			i++;
-		}
-	}
-	smart_str_appendc(buf, ')');
-	smart_str_0(buf);
-}
-
-static void model_to_string(sdlContentModelPtr model, smart_str *buf, int level)
-{
-	int i;
-
-	switch (model->kind) {
-		case XSD_CONTENT_ELEMENT:
-			type_to_string(model->u.element, buf, level);
-			smart_str_appendl(buf, ";\n", 2);
-			break;
-		case XSD_CONTENT_ANY:
-			for (i = 0;i < level;i++) {
-				smart_str_appendc(buf, ' ');
-			}
-			smart_str_appendl(buf, "<anyXML> any;\n", sizeof("<anyXML> any;\n")-1);
-			break;
-		case XSD_CONTENT_SEQUENCE:
-		case XSD_CONTENT_ALL:
-		case XSD_CONTENT_CHOICE: {
-			sdlContentModelPtr *tmp;
-
-			zend_hash_internal_pointer_reset(model->u.content);
-			while (zend_hash_get_current_data(model->u.content, (void**)&tmp) == SUCCESS) {
-				model_to_string(*tmp, buf, level);
-				zend_hash_move_forward(model->u.content);
-			}
-			break;
-		}
-		case XSD_CONTENT_GROUP:
-			model_to_string(model->u.group->model, buf, level);
-		default:
-		  break;
-	}
-}
-
-static void type_to_string(sdlTypePtr type, smart_str *buf, int level)
-{
-	int i;
-	smart_str spaces = {0};
-	HashPosition pos;
-
-	for (i = 0;i < level;i++) {
-		smart_str_appendc(&spaces, ' ');
-	}
-	smart_str_appendl(buf, spaces.c, spaces.len);
-
-	switch (type->kind) {
-		case XSD_TYPEKIND_SIMPLE:
-		case XSD_TYPEKIND_LIST:
-		case XSD_TYPEKIND_UNION:
-			if (type->encode) {
-				smart_str_appendl(buf, type->encode->details.type_str, strlen(type->encode->details.type_str));
-				smart_str_appendc(buf, ' ');
-			} else {
-				smart_str_appendl(buf, "anyType ", sizeof("anyType ")-1);
-			}
-			smart_str_appendl(buf, type->name, strlen(type->name));
-			break;
-		case XSD_TYPEKIND_COMPLEX:
-		case XSD_TYPEKIND_RESTRICTION:
-		case XSD_TYPEKIND_EXTENSION:
-			if (type->encode &&
-			    (type->encode->details.type == IS_ARRAY ||
-			     type->encode->details.type == SOAP_ENC_ARRAY)) {
-			  sdlAttributePtr *attr;
-			  sdlExtraAttributePtr *ext;
-
-				if (type->attributes &&
-				    zend_hash_find(type->attributes, SOAP_1_1_ENC_NAMESPACE":arrayType",
-				      sizeof(SOAP_1_1_ENC_NAMESPACE":arrayType"),
-				      (void **)&attr) == SUCCESS &&
-				      zend_hash_find((*attr)->extraAttributes, WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType"), (void **)&ext) == SUCCESS) {
-					char *end = strchr((*ext)->val, '[');
-					int len;
-					if (end == NULL) {
-						len = strlen((*ext)->val);
-					} else {
-						len = end-(*ext)->val;
-					}
-					if (len == 0) {
-						smart_str_appendl(buf, "anyType", sizeof("anyType")-1);
-					} else {
-						smart_str_appendl(buf, (*ext)->val, len);
-					}
-					smart_str_appendc(buf, ' ');
-					smart_str_appendl(buf, type->name, strlen(type->name));
-					if (end != NULL) {
-						smart_str_appends(buf, end);
-					}
-				} else {
-					sdlTypePtr elementType;
-					if (type->attributes &&
-					    zend_hash_find(type->attributes, SOAP_1_2_ENC_NAMESPACE":itemType",
-					      sizeof(SOAP_1_2_ENC_NAMESPACE":itemType"),
-					      (void **)&attr) == SUCCESS &&
-					      zend_hash_find((*attr)->extraAttributes, WSDL_NAMESPACE":itemType", sizeof(WSDL_NAMESPACE":arrayType"), (void **)&ext) == SUCCESS) {
-						smart_str_appends(buf, (*ext)->val);
-						smart_str_appendc(buf, ' ');
-					} else if (type->elements &&
-					           zend_hash_num_elements(type->elements) == 1 &&
-					           (zend_hash_internal_pointer_reset(type->elements),
-					            zend_hash_get_current_data(type->elements, (void**)&elementType) == SUCCESS) &&
-					           (elementType = *(sdlTypePtr*)elementType) != NULL &&
-					           elementType->encode && elementType->encode->details.type_str) {
-						smart_str_appends(buf, elementType->encode->details.type_str);
-						smart_str_appendc(buf, ' ');
-					} else {
-						smart_str_appendl(buf, "anyType ", 8);
-					}
-					smart_str_appendl(buf, type->name, strlen(type->name));
-					if (type->attributes &&
-					    zend_hash_find(type->attributes, SOAP_1_2_ENC_NAMESPACE":arraySize",
-					      sizeof(SOAP_1_2_ENC_NAMESPACE":arraySize"),
-					      (void **)&attr) == SUCCESS &&
-					      zend_hash_find((*attr)->extraAttributes, WSDL_NAMESPACE":itemType", sizeof(WSDL_NAMESPACE":arraySize"), (void **)&ext) == SUCCESS) {
-						smart_str_appendc(buf, '[');
-						smart_str_appends(buf, (*ext)->val);
-						smart_str_appendc(buf, ']');
-					} else {
-						smart_str_appendl(buf, "[]", 2);
-					}
-				}
-			} else {
-				smart_str_appendl(buf, "struct ", 7);
-				smart_str_appendl(buf, type->name, strlen(type->name));
-				smart_str_appendc(buf, ' ');
-				smart_str_appendl(buf, "{\n", 2);
-				if ((type->kind == XSD_TYPEKIND_RESTRICTION ||
-				     type->kind == XSD_TYPEKIND_EXTENSION) && type->encode) {
-					encodePtr enc = type->encode;
-					while (enc && enc->details.sdl_type &&
-					       enc != enc->details.sdl_type->encode &&
-					       enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
-					       enc->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
-					       enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
-						enc = enc->details.sdl_type->encode;
-					}
-					if (enc) {
-						smart_str_appendl(buf, spaces.c, spaces.len);
-						smart_str_appendc(buf, ' ');
-						smart_str_appendl(buf, type->encode->details.type_str, strlen(type->encode->details.type_str));
-						smart_str_appendl(buf, " _;\n", 4);
-					}
-				}
-				if (type->model) {
-					model_to_string(type->model, buf, level+1);
-				}
-				if (type->attributes) {
-					sdlAttributePtr *attr;
-
-					zend_hash_internal_pointer_reset_ex(type->attributes, &pos);
-					while (zend_hash_get_current_data_ex(type->attributes, (void **)&attr, &pos) != FAILURE) {
-						smart_str_appendl(buf, spaces.c, spaces.len);
-						smart_str_appendc(buf, ' ');
-						if ((*attr)->encode && (*attr)->encode->details.type_str) {
-							smart_str_appends(buf, (*attr)->encode->details.type_str);
-							smart_str_appendc(buf, ' ');
-						} else {
-							smart_str_appendl(buf, "UNKNOWN ", 8);
-						}
-						smart_str_appends(buf, (*attr)->name);
-						smart_str_appendl(buf, ";\n", 2);
-						zend_hash_move_forward_ex(type->attributes, &pos);
-					}
-				}
-				smart_str_appendl(buf, spaces.c, spaces.len);
-				smart_str_appendc(buf, '}');
-			}
-			break;
-		default:
-			break;
-	}
-	smart_str_free(&spaces);
-	smart_str_0(buf);
-}
-
-
-
-/* END COPIED ext/soap */
-
 /* {{{ serialize om to string */
 static char* serialize_om(axis2_env_t *env, axiom_node_t *ret_node)
 {
@@ -2192,16 +488,6 @@
 	wsf_globals->enable_exception = 0;
 	wsf_globals->soap_version = AXIOM_SOAP12;
 	wsf_globals->passwd_location = NULL;
-
-/*Taken From ext/soap */    
-	wsf_globals->error_code = NULL;
-	wsf_globals->defEnc = defEnc;
-	wsf_globals->defEncIndex = defEncIndex;
-	wsf_globals->defEncNs = defEncNs;
-	wsf_globals->typemap = NULL;
-	wsf_globals->error_object = NULL;
-	wsf_globals->sdl = NULL;
-	wsf_globals->mem_cache = NULL;
 	
 }
 /* }}} */
@@ -2213,7 +499,6 @@
 	zend_class_entry ce;
     char *home_folder = NULL;
     
-    prepare_ws_globals();
 	ZEND_INIT_MODULE_GLOBALS(wsf, ws_init_globals, NULL);
 	REGISTER_INI_ENTRIES();
 	if (INI_STR("extension_dir")) {
@@ -2252,16 +537,10 @@
 	/*ws_fault_class_entry = zend_register_internal_class_ex(&ce, zend_exception_get_default(), NULL TSRMLS_CC);*/
 	ws_fault_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
 		
-    le_sdl = register_list_destructors(delete_sdl, NULL);
-    le_url = register_list_destructors(delete_url, NULL);
-    le_typemap = register_list_destructors(delete_hashtable, NULL);
-    
-
 	REGISTER_LONG_CONSTANT("WS_SOAP_ROLE_NEXT", WS_SOAP_ROLE_NEXT, CONST_CS | CONST_PERSISTENT);
 	REGISTER_LONG_CONSTANT("WS_SOAP_ROLE_NONE", WS_SOAP_ROLE_NONE, CONST_CS | CONST_PERSISTENT);
 	REGISTER_LONG_CONSTANT("WS_SOAP_ROLE_ULTIMATE_RECEIVER", WS_SOAP_ROLE_ULTIMATE_RECEIVER, CONST_CS | CONST_PERSISTENT);
 
-	
 	env = ws_env_create(WSF_GLOBAL(log_path));
 
 	if (WSF_GLOBAL(home))
@@ -2308,7 +587,6 @@
 	php_info_print_table_start();
 	php_info_print_table_header(2, "wsf support", "enabled");
 	php_info_print_table_end();
-
 	DISPLAY_INI_ENTRIES();
 }
 /* }}} */
@@ -2834,12 +1112,14 @@
 			
 		if(zend_hash_find(ht, "wsdl", sizeof("wsdl"), (void **)&tmp) == SUCCESS &&
 		Z_TYPE_PP(tmp) == IS_STRING){
-            int wsdl_cache = 0, ret;
+            /*
+			int wsdl_cache = 0, ret;
             sdlPtr sdl;
 			wsdl_path = Z_STRVAL_PP(tmp);
             sdl = get_sdl(obj , wsdl_path, wsdl_cache TSRMLS_CC);
             ret = zend_list_insert(sdl, le_sdl);
             add_property_resource(obj , "sdl", ret); 
+			*/
 		}
     }        
 }
@@ -3309,7 +1589,6 @@
 		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid parameters");
 		return;
 	}
-    
     arg_count = zend_hash_num_elements(Z_ARRVAL_P(args));
     if(arg_count > 0)
     {
@@ -3317,15 +1596,16 @@
         for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(args), &pos);
              zend_hash_get_current_data_ex(Z_ARRVAL_P(args), (void **) &param, &pos) == SUCCESS;
                 zend_hash_move_forward_ex(Z_ARRVAL_P(args), &pos)) {
-                    /*zval_add_ref(param);*/
 				if(Z_TYPE_PP(param) == IS_LONG){
 					php_printf(" index %d type %d", i, Z_LVAL_PP(param));
 				}
 				real_args[i++] = *param;
         }
     }
+	/*
 	do_soap_call(this_ptr, fn_name, fn_name_len, arg_count, real_args, return_value, NULL,
 		NULL, NULL, NULL, NULL TSRMLS_CC);
+	*/
 
 }
 /************************** service       ************************/
@@ -3768,7 +2048,7 @@
 
 		/** getting the correct binding style */
 		if ((zend_hash_find(Z_OBJPROP_P(obj), "bindingStyle", sizeof("bindingStyle"),
-				    &tmpval)) == SUCCESS && Z_TYPE_PP(tmpval) == IS_STRING)
+				    (void**)&tmpval)) == SUCCESS && Z_TYPE_PP(tmpval) == IS_STRING)
 		{
 		   binding_name = Z_STRVAL_PP(tmpval);
 	
@@ -4118,6 +2398,7 @@
 **/    
 PHP_METHOD(ws_var, __construct)
 {
+	/*
     zval *data, *type;
     char *stype = NULL, *ns = NULL, *name = NULL, *namens = NULL;
     int stype_len, ns_len , name_len , namens_len;
@@ -4156,6 +2437,7 @@
     if (namens && namens_len > 0) {
         add_property_stringl(this_ptr, "enc_namens", namens, namens_len, 1);
     }
+	*/
 }
 
 PHP_METHOD(ws_var, __destruct)
@@ -4164,9 +2446,7 @@
 }
 
 
-zval* add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC){
 
-}
 
 PHP_METHOD(ws_header, __construct) 
 {

Modified: wsf/php/src/wsf.h
==============================================================================
--- wsf/php/src/wsf.h	(original)
+++ wsf/php/src/wsf.h	Sun Jan  7 21:15:46 2007
@@ -19,9 +19,9 @@
 
 
 #ifdef PHP_WIN32
-#define WS_API __declspec(dllexport)
+#define WSF_PHP_API __declspec(dllexport)
 #else
-#define WS_API
+#define WSF_PHP_API
 #endif
 
 #include "php.h"
@@ -57,76 +57,6 @@
 #include "ext/dom/xml_common.h"
 #include <axiom.h>
 
-extern int le_url;
-
-typedef struct _encodeType encodeType, *encodeTypePtr;
-typedef struct _encode encode, *encodePtr;
-
-typedef struct _sdl sdl, *sdlPtr;
-typedef struct _sdlRestrictionInt sdlRestrictionInt, *sdlRestrictionIntPtr;
-typedef struct _sdlRestrictionChar sdlRestrictionChar, *sdlRestrictionCharPtr;
-typedef struct _sdlRestrictions sdlRestrictions, *sdlRestrictionsPtr;
-typedef struct _sdlType sdlType, *sdlTypePtr;
-typedef struct _sdlParam sdlParam, *sdlParamPtr;
-typedef struct _sdlFunction sdlFunction, *sdlFunctionPtr;
-typedef struct _sdlAttribute sdlAttribute, *sdlAttributePtr;
-typedef struct _sdlBinding sdlBinding, *sdlBindingPtr;
-typedef struct _sdlSoapBinding sdlSoapBinding, *sdlSoapBindingPtr;
-typedef struct _sdlSoapBindingFunction sdlSoapBindingFunction, *sdlSoapBindingFunctionPtr;
-typedef struct _sdlSoapBindingFunctionBody sdlSoapBindingFunctionBody, *sdlSoapBindingFunctionBodyPtr;
-
-typedef struct _soapMapping soapMapping, *soapMappingPtr;
-
-#include "php_xml.h"
-#include "php_encoding.h"
-#include "php_sdl.h"
-#include "php_schema.h"
-#include "php_http.h"
-
-struct _soapMapping {
-    zval *to_xml;
-    zval *to_zval;
-};
-
-
-#define SOAP_CLASS 1
-#define SOAP_FUNCTIONS 2
-#define SOAP_OBJECT 3
-#define SOAP_FUNCTIONS_ALL 999
-
-#define SOAP_MAP_FUNCTION 1
-#define SOAP_MAP_CLASS 2
-
-#define SOAP_PERSISTENCE_SESSION 1
-#define SOAP_PERSISTENCE_REQUEST 2
-
-#define SOAP_1_1 1
-#define SOAP_1_2 2
-
-#define SOAP_ACTOR_NEXT             1
-#define SOAP_ACTOR_NONE             2
-#define SOAP_ACTOR_UNLIMATERECEIVER 3
-
-#define SOAP_1_1_ACTOR_NEXT             "http://schemas.xmlsoap.org/soap/actor/next"
-
-#define SOAP_1_2_ACTOR_NEXT             "http://www.w3.org/2003/05/soap-envelope/role/next"
-#define SOAP_1_2_ACTOR_NONE             "http://www.w3.org/2003/05/soap-envelope/role/none"
-#define SOAP_1_2_ACTOR_UNLIMATERECEIVER "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
-
-#define SOAP_COMPRESSION_ACCEPT  0x20
-#define SOAP_COMPRESSION_GZIP    0x00
-#define SOAP_COMPRESSION_DEFLATE 0x10
-
-#define SOAP_AUTHENTICATION_BASIC   0
-#define SOAP_AUTHENTICATION_DIGEST  1
-
-#define SOAP_SINGLE_ELEMENT_ARRAYS  (1<<0)
-#define SOAP_WAIT_ONE_WAY_CALLS     (2<<0)
-
-#define WSDL_CACHE_NONE     0x0
-#define WSDL_CACHE_DISK     0x1
-#define WSDL_CACHE_MEMORY   0x2
-#define WSDL_CACHE_BOTH     0x3
 
 PHP_MINIT_FUNCTION(wsf);
 PHP_MSHUTDOWN_FUNCTION(wsf);
@@ -146,7 +76,6 @@
 
 /* class entries */
 
-
 extern zend_module_entry wsf_module_entry;
 #define phpext_wsf_ptr &wsf_module_entry
 
@@ -161,23 +90,6 @@
 zend_class_entry *ws_client_proxy_class_entry;
 
 ZEND_BEGIN_MODULE_GLOBALS(wsf)
-	HashTable defEncNs;
-	HashTable defEnc;
-	HashTable defEncIndex;
-	HashTable *typemap;
-	int features;
-	char*  error_code;
-	int cur_uniq_ns;	
-	zval*      error_object;
-	long       cache;
-	char*      cache_dir;
-	long       cache_ttl;
-	long       cache_limit;
-	HashTable *mem_cache;
-	HashTable *class_map;
-	sdlPtr     sdl;
-	xmlCharEncodingHandlerPtr encoding;
-	
 	long  enable_trace;
 	char *passwd_location;
 	int soap_version;
@@ -234,23 +146,8 @@
         }   
 
 
-#define soap_error0(severity, format) \
-	php_error(severity, "SOAP-ERROR: " format)
-
-#define soap_error1(severity, format, param1) \
-	php_error(severity, "SOAP-ERROR: " format, param1)
-
-#define soap_error2(severity, format, param1, param2) \
-	php_error(severity, "SOAP-ERROR: " format, param1, param2)
-
-#define soap_error3(severity, format, param1, param2, param3) \
-	php_error(severity, "SOAP-ERROR: " format, param1, param2, param3)
-
 zval* add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC);
 
-int parse_response(zval *this_ptr, char *buffer, int buffer_size, sdlFunctionPtr fn, 
-						char *fn_name, zval *return_value TSRMLS_DC);
-
 #endif	/* WSF_H */
 
 

Modified: wsf/php/src/wsf_common.h
==============================================================================
--- wsf/php/src/wsf_common.h	(original)
+++ wsf/php/src/wsf_common.h	Sun Jan  7 21:15:46 2007
@@ -18,9 +18,9 @@
 #define WS_COMMON_H
 
 #ifdef PHP_WIN32
-#define WS_API __declspec(dllexport)
+#define WSF_PHP_API __declspec(dllexport)
 #else
-#define WS_API
+#define WSF_PHP_API
 #endif
 
 #ifdef PHP_WIN32

Modified: wsf/php/src/wsf_out_transport_info.h
==============================================================================
--- wsf/php/src/wsf_out_transport_info.h	(original)
+++ wsf/php/src/wsf_out_transport_info.h	Sun Jan  7 21:15:46 2007
@@ -25,13 +25,15 @@
 {
 #endif
 
-WS_API axis2_http_out_transport_info_t * WS_CALL 
+WSF_PHP_API axis2_http_out_transport_info_t * WS_CALL 
 ws_out_transport_info_create(const axis2_env_t *env,
                php_req_info_t *r);
 
-WS_API axis2_status_t WS_CALL 
+WSF_PHP_API axis2_status_t WS_CALL 
 ws_out_transport_info_free_void_arg (void *transport_info,
-                                             const axis2_env_t *env);
+                                     const axis2_env_t *env);
+
+
 
 /** @} */
 #ifdef __cplusplus

Modified: wsf/php/src/wsf_stream.h
==============================================================================
--- wsf/php/src/wsf_stream.h	(original)
+++ wsf/php/src/wsf_stream.h	Sun Jan  7 21:15:46 2007
@@ -26,7 +26,7 @@
 {
 #endif
 
-WS_API axis2_stream_t * WS_CALL 
+WSF_PHP_API axis2_stream_t * WS_CALL 
 axis2_stream_create_php(const axis2_env_t *env, 
         php_req_info_t *req TSRMLS_DC);
 

Modified: wsf/php/src/wsf_worker.h
==============================================================================
--- wsf/php/src/wsf_worker.h	(original)
+++ wsf/php/src/wsf_worker.h	Sun Jan  7 21:15:46 2007
@@ -55,7 +55,7 @@
 };
 
 
-WS_API ws_worker_t * WS_CALL 
+WSF_PHP_API ws_worker_t * WS_CALL 
 ws_worker_create (const axis2_env_t *env, 
         axis2_char_t *repo_path);
     

Modified: wsf/php/src/wsf_xml_msg_recv.h
==============================================================================
--- wsf/php/src/wsf_xml_msg_recv.h	(original)
+++ wsf/php/src/wsf_xml_msg_recv.h	Sun Jan  7 21:15:46 2007
@@ -19,7 +19,7 @@
 
 #include "wsf_common.h"
 
-WS_API axis2_msg_recv_t* WS_CALL
+WSF_PHP_API axis2_msg_recv_t* WS_CALL
 ws_xml_msg_recv_create(const axis2_env_t *env);
 
 #endif /* WS_XML_MSG_RECV_H */

Modified: wsf/php/src/xml_msg_recv.c
==============================================================================
--- wsf/php/src/xml_msg_recv.c	(original)
+++ wsf/php/src/xml_msg_recv.c	Sun Jan  7 21:15:46 2007
@@ -99,7 +99,7 @@
     
 /************************** End of function prototypes ************************/
 
-WS_API axis2_msg_recv_t* WS_CALL
+WSF_PHP_API axis2_msg_recv_t* WS_CALL
 ws_xml_msg_recv_create(const axis2_env_t *env){
 
 	axis2_msg_recv_t *msg_recv = NULL;




More information about the Wsf-c-dev mailing list