summaryrefslogtreecommitdiff
path: root/ext/soap/php_packet_soap.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2004-02-03 16:44:57 +0000
committerDmitry Stogov <dmitry@php.net>2004-02-03 16:44:57 +0000
commit75e4f43d0cc03d71e227a478b17a2b8d71953dbf (patch)
tree187b03edd765282b1e5cea6072e920a40e3a24bd /ext/soap/php_packet_soap.c
parentf3a114a97f8fa0c39bf2c915619ccb634c87a604 (diff)
downloadphp-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.c13
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) {