From: Dmitry Stogov Date: Mon, 26 Jan 2004 17:11:05 +0000 (+0000) Subject: Support for SOAP 1.2 Fault/Code/Value and Fault/Reason/Text X-Git-Tag: php-5.0.0b4RC1~292 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e5ebeb95d332bdf1f484f2773fe1f476095a8ef;p=php Support for SOAP 1.2 Fault/Code/Value and Fault/Reason/Text --- diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c index 9bc874efeb..e379f447f3 100644 --- a/ext/soap/php_packet_soap.c +++ b/ext/soap/php_packet_soap.c @@ -118,12 +118,19 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunction } else { tmp = get_node(fault->children,"Code"); if (tmp != NULL && tmp->children != NULL) { - faultcode = tmp->children->content; + tmp = get_node(tmp->children,"Value"); + if (tmp != NULL && tmp->children != NULL) { + faultcode = tmp->children->content; + } } tmp = get_node(fault->children,"Reason"); if (tmp != NULL && tmp->children != NULL) { - faultstring = tmp->children->content; + /* TODO: lang attribute */ + tmp = get_node(tmp->children,"Text"); + if (tmp != NULL && tmp->children != NULL) { + faultstring = tmp->children->content; + } } tmp = get_node(fault->children,"Detail"); diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 0e31a9fee7..9c376c173c 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -1985,6 +1985,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ int new_len; xmlNodePtr node = xmlNewChild(param, NULL, SOAP_1_2_ENV_NS_PREFIX":Code", NULL); char *str = php_escape_html_entities(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), &new_len, 0, 0, NULL TSRMLS_CC); + node = xmlNewChild(node, NULL, SOAP_1_2_ENV_NS_PREFIX":Value", NULL); xmlNodeSetContentLen(node, str, new_len); efree(str); } @@ -1992,6 +1993,7 @@ static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_ int new_len; xmlNodePtr node = xmlNewChild(param, NULL, SOAP_1_2_ENV_NS_PREFIX":Reason", NULL); char *str = php_escape_html_entities(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), &new_len, 0, 0, NULL TSRMLS_CC); + node = xmlNewChild(node, NULL, SOAP_1_2_ENV_NS_PREFIX":Text", NULL); xmlNodeSetContentLen(node, str, new_len); efree(str); }