diff options
author | SVN Migration <svn@php.net> | 2002-08-06 16:36:06 +0000 |
---|---|---|
committer | SVN Migration <svn@php.net> | 2002-08-06 16:36:06 +0000 |
commit | 2ccef75a1992e45f9b13cc7d7314a62bc9c0f2bd (patch) | |
tree | b1da83411c9efb34579ca041f7ddcc7d62652611 /ext/soap/php_packet_soap.c | |
parent | d5ec9a9886f5b7e867f0bbadee0ff2f026004d95 (diff) | |
download | php-git-dev.tar.gz |
This commit was manufactured by cvs2svn to create tag 'dev'.dev
Diffstat (limited to 'ext/soap/php_packet_soap.c')
-rw-r--r-- | ext/soap/php_packet_soap.c | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c deleted file mode 100644 index 3414f970eb..0000000000 --- a/ext/soap/php_packet_soap.c +++ /dev/null @@ -1,124 +0,0 @@ -#include "php_soap.h" - -int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunctionPtr fn, char *fn_name, zval ***ret, int *num_params) -{ - xmlDocPtr response; - xmlNodePtr trav, trav2, env, body, resp, cur, fault; - zval **tmp_ret; - TSRMLS_FETCH(); - - response = xmlParseMemory(buffer, buffer_size); - xmlCleanupParser(); - - trav = response->children; - FOREACHNODE(trav,"Envelope",env) - { - trav2 = env->children; - FOREACHNODE(trav2,"Body",body) - { - fault = get_node(body->children,"Fault"); - if(fault != NULL) - { - char *faultcode = NULL, *faultstring = NULL, *faultactor = NULL; - zval *details = NULL; - xmlNodePtr tmp; - - tmp = get_node(fault->children,"faultcode"); - if(tmp != NULL && tmp->children != NULL) - faultcode = tmp->children->content; - - tmp = get_node(fault->children,"faultstring"); - if(tmp != NULL && tmp->children != NULL) - faultstring = tmp->children->content; - - tmp = get_node(fault->children,"faultactor"); - if(tmp != NULL && tmp->children != NULL) - faultactor = tmp->children->content; - - tmp = get_node(fault->children,"detail"); - if(tmp != NULL) - { - encodePtr enc; - enc = get_conversion(UNKNOWN_TYPE); - details = enc->to_zval(enc->details, tmp); - } - - add_soap_fault(this_ptr, faultcode, faultstring, faultactor, details); - } - else - { - resp = body->children; - if(fn != NULL) - { - cur = get_node(resp, fn->responseName); - if(cur != NULL) - { - int num_resp = zend_hash_num_elements(fn->responseParameters); - if(num_resp <= 1) - { - sdlParamPtr *h_param, param; - xmlNodePtr val; - - zend_hash_internal_pointer_reset(fn->responseParameters); - if(zend_hash_get_current_data(fn->responseParameters, (void **)&h_param) != SUCCESS) - { - (*num_params) = 0; - } - else - { - param = (*h_param); - val = get_node(cur->children, param->paramName); - if(val != NULL) - { - encodePtr enc; - tmp_ret = emalloc(sizeof(zval **)); - if(param != NULL) - enc = param->encode; - else - enc = get_conversion(UNKNOWN_TYPE); - - tmp_ret[0] = master_to_zval(enc, val); - (*ret) = tmp_ret; - (*num_params) = 1; - } - else - php_error(E_ERROR, "Can't find response parameter \"%s\"", param->paramName); - } - } - else - { - php_error(E_ERROR,"Doesn't handle multiple return values"); - } - } - } - else - { - cur = resp; - while(cur && cur->type != XML_ELEMENT_NODE) - cur = cur->next; - if(cur != NULL) - { - xmlNodePtr val; - val = cur->children; - while(val && val->type != XML_ELEMENT_NODE) - val = val->next; - - if(val != NULL) - { - encodePtr enc; - enc = get_conversion(UNKNOWN_TYPE); - tmp_ret = emalloc(sizeof(zval **)); - tmp_ret[0] = master_to_zval(enc, val); - (*ret) = tmp_ret; - (*num_params) = 1; - } - } - } - } - } - ENDFOREACH(trav2); - } - ENDFOREACH(trav); - xmlFreeDoc(response); - return TRUE; -} |