summaryrefslogtreecommitdiff
path: root/ext/soap/php_packet_soap.c
diff options
context:
space:
mode:
authorSVN Migration <svn@php.net>2002-08-06 16:36:06 +0000
committerSVN Migration <svn@php.net>2002-08-06 16:36:06 +0000
commit2ccef75a1992e45f9b13cc7d7314a62bc9c0f2bd (patch)
treeb1da83411c9efb34579ca041f7ddcc7d62652611 /ext/soap/php_packet_soap.c
parentd5ec9a9886f5b7e867f0bbadee0ff2f026004d95 (diff)
downloadphp-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.c124
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;
-}