diff options
Diffstat (limited to 'ext/soap/php_packet_soap.c')
| -rw-r--r-- | ext/soap/php_packet_soap.c | 11 |
1 files changed, 9 insertions, 2 deletions
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"); |
