diff options
Diffstat (limited to 'ext/soap/soap.c')
| -rw-r--r-- | ext/soap/soap.c | 323 |
1 files changed, 159 insertions, 164 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 2a480e15a8..6c3e8fe860 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -56,11 +56,11 @@ static sdlParamPtr get_param(sdlFunctionPtr function, char *param_name, int inde static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name); static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr node); -static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, char* actor, zval *function_name, int *num_params, zval **parameters[], int *version, soapHeader **headers TSRMLS_DC); -static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_name,char *uri,zval *ret, soapHeader *headers, int version TSRMLS_DC); -static xmlDocPtr seralize_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 seralize_parameter(sdlParamPtr param,zval *param_val,int index,char *name, int style, xmlNodePtr parent TSRMLS_DC); -static xmlNodePtr seralize_zval(zval *val, sdlParamPtr param, char *paramName, int style, xmlNodePtr parent TSRMLS_DC); +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 void delete_service(void *service); static void delete_url(void *handle); @@ -482,7 +482,7 @@ PHP_MINIT_FUNCTION(soap) INIT_CLASS_ENTRY(ce, PHP_SOAP_HEADER_CLASSNAME, soap_header_functions); soap_header_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_service = register_list_destructors(delete_service, NULL); @@ -588,7 +588,7 @@ PHP_FUNCTION(soap_encode_to_xml) } enc = get_conversion(Z_TYPE_P(pzval)); - ret = php_domobject_new(seralize_zval(pzval, NULL, name, SOAP_ENCODED), &found, NULL TSRMLS_CC); + ret = php_domobject_new(serialize_zval(pzval, NULL, name, SOAP_ENCODED), &found, NULL TSRMLS_CC); *return_value = *ret; zval_copy_ctor(return_value); zval_ptr_dtor(&ret); @@ -1277,7 +1277,7 @@ PHP_METHOD(soapserver, handle) old_sdl = SOAP_GLOBAL(sdl); SOAP_GLOBAL(sdl) = service->sdl; old_soap_version = SOAP_GLOBAL(soap_version); - function = deseralize_function_call(service->sdl, doc_request, service->actor, &function_name, &num_params, ¶ms, &soap_version, &soap_headers TSRMLS_CC); + function = deserialize_function_call(service->sdl, doc_request, service->actor, &function_name, &num_params, ¶ms, &soap_version, &soap_headers TSRMLS_CC); xmlFreeDoc(doc_request); if (service->type == SOAP_CLASS) { @@ -1425,7 +1425,7 @@ PHP_METHOD(soapserver, handle) memcpy(response_name+Z_STRLEN(function_name),"Response",sizeof("Response")); } SOAP_GLOBAL(overrides) = service->mapping; - doc_return = seralize_response_call(function, response_name, service->uri, &retval, soap_headers, soap_version TSRMLS_CC); + doc_return = serialize_response_call(function, response_name, service->uri, &retval, soap_headers, soap_version TSRMLS_CC); SOAP_GLOBAL(overrides) = NULL; efree(response_name); } else { @@ -1513,7 +1513,7 @@ static void soap_server_fault_ex(zval* fault TSRMLS_DC) soap_version = SOAP_GLOBAL(soap_version); - doc_return = seralize_response_call(NULL, NULL, NULL, fault, NULL, soap_version TSRMLS_CC); + doc_return = serialize_response_call(NULL, NULL, NULL, fault, NULL, soap_version TSRMLS_CC); xmlDocDumpMemory(doc_return, &buf, &size); @@ -1818,10 +1818,10 @@ static void do_soap_call(zval* this_ptr, sdlBindingPtr binding = fn->binding; if (binding->bindingType == BINDING_SOAP) { sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)fn->bindingAttributes; - request = seralize_function_call(this_ptr, fn, NULL, fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC); + request = serialize_function_call(this_ptr, fn, NULL, fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC); ret = send_http_soap_request(this_ptr, request, binding->location, fnb->soapAction, soap_version TSRMLS_CC); } else { - request = seralize_function_call(this_ptr, fn, NULL, sdl->target_ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC); + request = serialize_function_call(this_ptr, fn, NULL, sdl->target_ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC); ret = send_http_soap_request(this_ptr, request, binding->location, NULL, soap_version TSRMLS_CC); } @@ -1855,7 +1855,7 @@ static void do_soap_call(zval* this_ptr, if (call_uri == NULL) { call_uri = Z_STRVAL_PP(uri); } - request = seralize_function_call(this_ptr, NULL, function, call_uri, real_args, arg_count, soap_version, soap_headers TSRMLS_CC); + 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); @@ -2160,7 +2160,7 @@ static void set_soap_fault(zval *obj, char *fault_code, char *fault_string, char } } -static void deseralize_parameters(xmlNodePtr params, sdlFunctionPtr function, int *num_params, zval ***parameters) +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; @@ -2263,14 +2263,14 @@ static sdlFunctionPtr find_function(sdlPtr sdl, xmlNodePtr func, zval* function_ INIT_ZVAL(*function_name); if (function != NULL) { ZVAL_STRING(function_name, (char *)function->functionName, 1); - } else{ + } else { ZVAL_STRING(function_name, (char *)func->name, 1); } return function; } -static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, char* actor, zval *function_name, int *num_params, zval ***parameters, int *version, soapHeader **headers TSRMLS_DC) +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; @@ -2474,20 +2474,20 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch 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, 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 (fnb->input.headers) { + smart_str key = {0}; + + if (hdr_func->ns) { + smart_str_appends(&key, 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; @@ -2500,7 +2500,7 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch hdr_func = hdr_func->children; } } - deseralize_parameters(hdr_func, h->function, &h->num_params, &h->parameters); + deserialize_parameters(hdr_func, h->function, &h->num_params, &h->parameters); } INIT_ZVAL(h->retval); if (last == NULL) { @@ -2523,11 +2523,11 @@ ignore_header: } else { func = func->children; } - deseralize_parameters(func, function, num_params, parameters); + deserialize_parameters(func, function, num_params, parameters); return function; } -static int seralize_response_call2(xmlNodePtr body, sdlFunctionPtr function, char *function_name, char *uri, zval *ret, int version, int main TSRMLS_DC) +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; @@ -2575,13 +2575,13 @@ static int seralize_response_call2(xmlNodePtr body, sdlFunctionPtr function, cha if (main && version == SOAP_1_2) { xmlNs *rpc_ns = xmlNewNs(body, RPC_SOAP12_NAMESPACE, RPC_SOAP12_NS_PREFIX); rpc_result = xmlNewChild(method, rpc_ns, "result", NULL); - param = seralize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC); + param = serialize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC); xmlNodeSetContent(rpc_result,param->name); } else { - param = seralize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC); + param = serialize_parameter(parameter, ret, 0, "return", use, method TSRMLS_CC); } } else { - param = seralize_parameter(parameter, ret, 0, "return", use, body TSRMLS_CC); + param = serialize_parameter(parameter, ret, 0, "return", use, body TSRMLS_CC); if (function && function->binding->bindingType == BINDING_SOAP) { sdlParamPtr *sparam; @@ -2611,9 +2611,9 @@ static int seralize_response_call2(xmlNodePtr body, sdlFunctionPtr function, cha parameter = get_param(function, param_name, param_index, TRUE); if (style == SOAP_RPC) { - param = seralize_parameter(parameter, *data, i, param_name, use, method TSRMLS_CC); + param = serialize_parameter(parameter, *data, i, param_name, use, method TSRMLS_CC); } else { - param = seralize_parameter(parameter, *data, i, param_name, use, body TSRMLS_CC); + param = serialize_parameter(parameter, *data, i, param_name, use, body TSRMLS_CC); if (function && function->binding->bindingType == BINDING_SOAP) { sdlParamPtr *sparam; @@ -2635,7 +2635,7 @@ static int seralize_response_call2(xmlNodePtr body, sdlFunctionPtr function, cha return use; } -static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_name, char *uri, zval *ret, soapHeader* headers, int version TSRMLS_DC) +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; @@ -2657,7 +2657,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ ns = xmlNewNs(envelope, SOAP_1_2_ENV_NAMESPACE, SOAP_1_2_ENV_NS_PREFIX); xmlSetNs(envelope,ns); } else { - php_error(E_ERROR, "Unknown SOAP version"); + php_error(E_ERROR, "Unknown SOAP version"); } xmlDocSetRootElement(doc, envelope); @@ -2697,8 +2697,8 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ } if (zend_hash_find(prop, "detail", sizeof("detail"), (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) != IS_NULL) { - /*FIXME: use = SOAP_ENCODED;*/ - seralize_zval(*tmp, NULL, "detail", use, param TSRMLS_CC); + /*FIXME: use = SOAP_ENCODED;*/ + serialize_zval(*tmp, NULL, "detail", use, param TSRMLS_CC); } } else { HashTable* prop; @@ -2724,7 +2724,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ } if (zend_hash_find(prop, "detail", sizeof("detail"), (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) != IS_NULL) { - seralize_zval(*tmp, NULL, SOAP_1_2_ENV_NS_PREFIX":Detail", use, param TSRMLS_CC); + serialize_zval(*tmp, NULL, SOAP_1_2_ENV_NS_PREFIX":Detail", use, param TSRMLS_CC); } } } else { @@ -2783,7 +2783,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ } if (h->function) { - if (seralize_response_call2(head, h->function, Z_STRVAL(h->function_name), uri, hdr_ret, version, 0 TSRMLS_CC) == SOAP_ENCODED) { + 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 { @@ -2808,7 +2808,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ body = xmlNewChild(envelope, ns, "Body", NULL); - if (seralize_response_call2(body, function, function_name, uri, ret, version, 1 TSRMLS_CC) == SOAP_ENCODED) { + if (serialize_response_call2(body, function, function_name, uri, ret, version, 1 TSRMLS_CC) == SOAP_ENCODED) { use = SOAP_ENCODED; } @@ -2828,7 +2828,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ return doc; } -static xmlDocPtr seralize_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 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; @@ -2903,9 +2903,9 @@ static xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, sdlParamPtr parameter = get_param(function, NULL, i, FALSE); if (style == SOAP_RPC) { - param = seralize_parameter(parameter, arguments[i], i, NULL, use, method TSRMLS_CC); + param = serialize_parameter(parameter, arguments[i], i, NULL, use, method TSRMLS_CC); } else if (style == SOAP_DOCUMENT) { - param = seralize_parameter(parameter, arguments[i], i, NULL, use, body TSRMLS_CC); + param = serialize_parameter(parameter, arguments[i], i, NULL, use, body TSRMLS_CC); if (function && function->binding->bindingType == BINDING_SOAP) { sdlParamPtr *sparam; @@ -2923,78 +2923,78 @@ static xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, zend_hash_internal_pointer_reset(soap_headers); while (zend_hash_get_current_data(soap_headers,(void**)&header) == SUCCESS) { - HashTable *ht = Z_OBJPROP_PP(header); - zval **name, **ns, **tmp; - - if (zend_hash_find(ht, "name", sizeof("name"), (void**)&name) == SUCCESS && - Z_TYPE_PP(name) == IS_STRING && - zend_hash_find(ht, "namespace", sizeof("namespace"), (void**)&ns) == SUCCESS && - Z_TYPE_PP(ns) == IS_STRING) { - xmlNodePtr h; - xmlNsPtr nsptr; - int hdr_use = SOAP_LITERAL; - encodePtr enc = NULL; - - if (hdrs) { - smart_str key = {0}; - sdlSoapBindingFunctionHeaderPtr *hdr; - - smart_str_appendl(&key, Z_STRVAL_PP(ns), Z_STRLEN_PP(ns)); - smart_str_appendc(&key, ':'); - smart_str_appendl(&key, Z_STRVAL_PP(name), Z_STRLEN_PP(name)); - smart_str_0(&key); - if (zend_hash_find(hdrs, key.c, key.len+1,(void**)&hdr) == SUCCESS) { - hdr_use = (*hdr)->use; - enc = (*hdr)->encode; - if (hdr_use == SOAP_ENCODED) { - use = SOAP_ENCODED; - } - } - smart_str_free(&key); - } - - if (zend_hash_find(ht, "data", sizeof("data"), (void**)&tmp) == SUCCESS) { - h = master_to_xml(enc, *tmp, hdr_use, head); - xmlNodeSetName(h, Z_STRVAL_PP(name)); - } else { - h = xmlNewNode(NULL, Z_STRVAL_PP(name)); - xmlAddChild(head,h); - } - nsptr = encode_add_ns(h,Z_STRVAL_PP(ns)); + HashTable *ht = Z_OBJPROP_PP(header); + zval **name, **ns, **tmp; + + if (zend_hash_find(ht, "name", sizeof("name"), (void**)&name) == SUCCESS && + Z_TYPE_PP(name) == IS_STRING && + zend_hash_find(ht, "namespace", sizeof("namespace"), (void**)&ns) == SUCCESS && + Z_TYPE_PP(ns) == IS_STRING) { + xmlNodePtr h; + xmlNsPtr nsptr; + int hdr_use = SOAP_LITERAL; + encodePtr enc = NULL; + + if (hdrs) { + smart_str key = {0}; + sdlSoapBindingFunctionHeaderPtr *hdr; + + smart_str_appendl(&key, Z_STRVAL_PP(ns), Z_STRLEN_PP(ns)); + smart_str_appendc(&key, ':'); + smart_str_appendl(&key, Z_STRVAL_PP(name), Z_STRLEN_PP(name)); + smart_str_0(&key); + if (zend_hash_find(hdrs, key.c, key.len+1,(void**)&hdr) == SUCCESS) { + hdr_use = (*hdr)->use; + enc = (*hdr)->encode; + if (hdr_use == SOAP_ENCODED) { + use = SOAP_ENCODED; + } + } + smart_str_free(&key); + } + + if (zend_hash_find(ht, "data", sizeof("data"), (void**)&tmp) == SUCCESS) { + h = master_to_xml(enc, *tmp, hdr_use, head); + xmlNodeSetName(h, Z_STRVAL_PP(name)); + } else { + h = xmlNewNode(NULL, Z_STRVAL_PP(name)); + xmlAddChild(head,h); + } + nsptr = encode_add_ns(h,Z_STRVAL_PP(ns)); xmlSetNs(h, nsptr); - if (zend_hash_find(ht, "mustUnderstand", sizeof("mustUnderstand"), (void**)&tmp) == SUCCESS && - Z_TYPE_PP(tmp) == IS_BOOL && Z_LVAL_PP(tmp)) { - if (version == SOAP_1_1) { - xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":mustUnderstand","1"); - } else { - xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":mustUnderstand","true"); - } - } - if (zend_hash_find(ht, "actor", sizeof("actor"), (void**)&tmp) == SUCCESS) { - if (Z_TYPE_PP(tmp) == IS_STRING) { - if (version == SOAP_1_1) { - xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":actor",Z_STRVAL_PP(tmp)); - } else { - xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",Z_STRVAL_PP(tmp)); - } - } else if (Z_TYPE_PP(tmp) == IS_LONG) { - if (version == SOAP_1_1) { - if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) { - xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":actor",SOAP_1_1_ACTOR_NEXT); - } - } else { - if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) { - xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NEXT); - } else if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NONE) { - xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NONE); - } else if (Z_LVAL_PP(tmp) == SOAP_ACTOR_UNLIMATERECEIVER) { - xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_UNLIMATERECEIVER); - } - } - } - } - } + if (zend_hash_find(ht, "mustUnderstand", sizeof("mustUnderstand"), (void**)&tmp) == SUCCESS && + Z_TYPE_PP(tmp) == IS_BOOL && Z_LVAL_PP(tmp)) { + if (version == SOAP_1_1) { + xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":mustUnderstand","1"); + } else { + xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":mustUnderstand","true"); + } + } + if (zend_hash_find(ht, "actor", sizeof("actor"), (void**)&tmp) == SUCCESS) { + if (Z_TYPE_PP(tmp) == IS_STRING) { + if (version == SOAP_1_1) { + xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":actor",Z_STRVAL_PP(tmp)); + } else { + xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",Z_STRVAL_PP(tmp)); + } + } else if (Z_TYPE_PP(tmp) == IS_LONG) { + if (version == SOAP_1_1) { + if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) { + xmlSetProp(h, SOAP_1_1_ENV_NS_PREFIX":actor",SOAP_1_1_ACTOR_NEXT); + } + } else { + if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) { + xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NEXT); + } else if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NONE) { + xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NONE); + } else if (Z_LVAL_PP(tmp) == SOAP_ACTOR_UNLIMATERECEIVER) { + xmlSetProp(h, SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_UNLIMATERECEIVER); + } + } + } + } + } zend_hash_move_forward(soap_headers); } } @@ -3016,7 +3016,7 @@ static xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, return doc; } -static xmlNodePtr seralize_parameter(sdlParamPtr param, zval *param_val, int index, char *name, int style, xmlNodePtr parent TSRMLS_DC) +static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, int index, char *name, int style, xmlNodePtr parent TSRMLS_DC) { char *paramName; xmlNodePtr xmlParam; @@ -3028,9 +3028,9 @@ static xmlNodePtr seralize_parameter(sdlParamPtr param, zval *param_val, int ind zval **param_data; if (zend_hash_find(Z_OBJPROP_P(param_val), "param_name", sizeof("param_name"), (void **)¶m_name) == SUCCESS && - zend_hash_find(Z_OBJPROP_P(param_val), "param_data", sizeof("param_data"), (void **)¶m_data) == SUCCESS) { - param_val = *param_data; - name = Z_STRVAL_PP(param_name); + zend_hash_find(Z_OBJPROP_P(param_val), "param_data", sizeof("param_data"), (void **)¶m_data) == SUCCESS) { + param_val = *param_data; + name = Z_STRVAL_PP(param_name); } } @@ -3045,12 +3045,12 @@ static xmlNodePtr seralize_parameter(sdlParamPtr param, zval *param_val, int ind } } - xmlParam = seralize_zval(param_val, param, paramName, style, parent TSRMLS_CC); + xmlParam = serialize_zval(param_val, param, paramName, style, parent TSRMLS_CC); return xmlParam; } -static xmlNodePtr seralize_zval(zval *val, sdlParamPtr param, char *paramName, int style, xmlNodePtr parent TSRMLS_DC) +static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr xmlParam; encodePtr enc; @@ -3137,30 +3137,25 @@ static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr params) zend_hash_internal_pointer_reset((*tmp)->requestParameters); while (zend_hash_get_current_data((*tmp)->requestParameters, (void**)¶m) == SUCCESS) { - if ((*param)->element) { - if (strcmp((*param)->element->name,node->name) != 0) { - ok = 0; - break; - } - if ((*param)->element->namens != NULL && node->ns != NULL) { - if (strcmp((*param)->element->namens,node->ns->href) != 0) { - ok = 0; - break; - } - } else if ((void*)(*param)->element->namens != (void*)node->ns) { - ok = 0; - break; - } - } else if (strcmp((*param)->paramName,node->name) != 0) { - ok = 0; - break; - } + if ((*param)->element) { + if (strcmp((*param)->element->name,node->name) != 0) { + ok = 0; + break; + } + if ((*param)->element->namens != NULL && node->ns != NULL) { + if (strcmp((*param)->element->namens,node->ns->href) != 0) { + ok = 0; + break; + } + } else if ((void*)(*param)->element->namens != (void*)node->ns) { + ok = 0; + break; + } + } else if (strcmp((*param)->paramName,node->name) != 0) { + ok = 0; + break; + } zend_hash_move_forward((*tmp)->requestParameters); -/* - do { - node = node->next; - } while (node != NULL && node->type != XML_ELEMENT_NODE); -*/ } if (ok /*&& node == NULL*/) { return (*tmp); @@ -3180,7 +3175,7 @@ static void function_to_string(sdlFunctionPtr function, smart_str *buf) HashPosition pos; sdlParamPtr *param; - if (function->responseParameters && + if (function->responseParameters && zend_hash_num_elements(function->responseParameters) > 0) { if (zend_hash_num_elements(function->responseParameters) == 1) { param = function->responseParameters->pListHead->pData; @@ -3244,7 +3239,7 @@ static void model_to_string(sdlContentModelPtr model, smart_str *buf, int level) switch (model->kind) { case XSD_CONTENT_ELEMENT: type_to_string(model->u.element, buf, level); - smart_str_appendl(buf, ";\n", 2); + smart_str_appendl(buf, ";\n", 2); break; case XSD_CONTENT_SEQUENCE: case XSD_CONTENT_ALL: @@ -3298,23 +3293,23 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level) 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) { + 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", 7); } else { smart_str_appendl(buf, (*ext)->val, len); } smart_str_appendc(buf, ' '); smart_str_appendl(buf, type->name, strlen(type->name)); - if (end != NULL) { + if (end != NULL) { smart_str_appends(buf, end); - } + } } else { sdlTypePtr elementType; if (type->attributes && @@ -3360,15 +3355,15 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level) enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) { enc = enc->details.sdl_type->encode; } - if (enc) { + 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); + smart_str_appendl(buf, " _;\n", 4); } } if (type->model) { - model_to_string(type->model, buf, level+1); + model_to_string(type->model, buf, level+1); } if (type->attributes) { sdlAttributePtr *attr; @@ -3383,8 +3378,8 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level) } else { smart_str_appendl(buf, "UNKNOWN ", 8); } - smart_str_appends(buf, (*attr)->name); - smart_str_appendl(buf, ";\n", 2); + smart_str_appends(buf, (*attr)->name); + smart_str_appendl(buf, ";\n", 2); zend_hash_move_forward_ex(type->attributes, &pos); } } |
