X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsoap.c;h=5eb176f8465503c4a64a623e52566cbd2900b132;hb=719e0dcf2d15c08086a06457701e21c6aff3d791;hp=316cae80e1c0a92703edce2530d702980c0c71e0;hpb=b462b5047a365a76a5be26341e62b69076a33d3a;p=yaz-moved-to-github.git diff --git a/src/soap.c b/src/soap.c index 316cae8..5eb176f 100644 --- a/src/soap.c +++ b/src/soap.c @@ -2,7 +2,7 @@ * Copyright (c) 2002-2004, Index Data. * See the file LICENSE for details. * - * $Id: soap.c,v 1.5 2004-01-07 20:36:44 adam Exp $ + * $Id: soap.c,v 1.7 2004-01-14 00:15:56 adam Exp $ */ #include @@ -14,11 +14,11 @@ static const char *soap_v1_1 = "http://schemas.xmlsoap.org/soap/envelope/"; static const char *soap_v1_2 = "http://www.w3.org/2001/06/soap-envelope"; -int z_soap_codec_enc(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, - const char *encoding, - const char *stylesheet) +int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding, + const char *stylesheet) { if (o->direction == ODR_DECODE) { @@ -203,6 +203,8 @@ int z_soap_codec_enc(ODR o, Z_SOAP **pp, if (p->which == Z_SOAP_generic && !strcmp(p->ns, "SRU")) { xmlDocSetRootElement(doc, body_ptr->children); + body_ptr->children = 0; + xmlFreeNode(envelope_ptr); } if (stylesheet) { @@ -232,10 +234,10 @@ int z_soap_codec_enc(ODR o, Z_SOAP **pp, return 0; } #else -int z_soap_codec_enc(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, const char *encoding, - const char *stylesheet) +int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, const char *encoding, + const char *stylesheet) { static char *err_xml = "\n" @@ -257,11 +259,20 @@ int z_soap_codec_enc(ODR o, Z_SOAP **pp, return -1; } #endif +int z_soap_codec_enc(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding) +{ + return z_soap_codec_enc_xsl(o, pp, content_buf, content_len, handlers, + encoding, 0); +} + int z_soap_codec(ODR o, Z_SOAP **pp, char **content_buf, int *content_len, Z_SOAP_Handler *handlers) { - return z_soap_codec_enc(o, pp, content_buf, content_len, handlers, 0, 0); + return z_soap_codec_enc(o, pp, content_buf, content_len, handlers, 0); } int z_soap_error(ODR o, Z_SOAP *p,