diff options
author | Dmitry Stogov <dmitry@php.net> | 2004-02-03 16:44:57 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2004-02-03 16:44:57 +0000 |
commit | 75e4f43d0cc03d71e227a478b17a2b8d71953dbf (patch) | |
tree | 187b03edd765282b1e5cea6072e920a40e3a24bd /ext/soap/php_packet_soap.c | |
parent | f3a114a97f8fa0c39bf2c915619ccb634c87a604 (diff) | |
download | php-git-75e4f43d0cc03d71e227a478b17a2b8d71953dbf.tar.gz |
Initial support for client-part SOAP headers (very incomlete)
Diffstat (limited to 'ext/soap/php_packet_soap.c')
-rw-r--r-- | ext/soap/php_packet_soap.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c index 7792c1cd91..84a0c5d75e 100644 --- a/ext/soap/php_packet_soap.c +++ b/ext/soap/php_packet_soap.c @@ -22,7 +22,7 @@ #include "php_soap.h" /* SOAP client calls this function to parse response from SOAP server */ -int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunctionPtr fn, char *fn_name, zval *return_value TSRMLS_DC) +int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunctionPtr fn, char *fn_name, zval *return_value, zval *soap_headers TSRMLS_DC) { char* envelope_ns = NULL; xmlDocPtr response; @@ -177,6 +177,17 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunction } } + if (soap_headers && head) { + trav = head->children; + while (trav != NULL) { + if (trav->type == XML_ELEMENT_NODE) { + zval *val = master_to_zval(NULL, trav); + add_assoc_zval(soap_headers, (char*)trav->name, val); + } + trav = trav->next; + } + } + /* Check if <Body> contains <Fault> element */ fault = get_node_ex(body->children,"Fault",envelope_ns); if (fault != NULL) { |