X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsoap.c;h=8a10195ef012153e0b3ea7d73f8f65c08c332c79;hb=5c3d2d2ab097e4bb59ba5718a396b020a2d302c0;hp=2d1910173e07abe2dc461665906e8709e8a69d9c;hpb=cdf3162d32f13fd58d0b7fb06b3252bab2bc78ad;p=yaz-moved-to-github.git diff --git a/src/soap.c b/src/soap.c index 2d19101..8a10195 100644 --- a/src/soap.c +++ b/src/soap.c @@ -2,7 +2,14 @@ * Copyright (c) 2002-2004, Index Data. * See the file LICENSE for details. * - * $Id: soap.c,v 1.6 2004-01-07 21:02:42 adam Exp $ + * $Id: soap.c,v 1.9 2004-10-15 00:19:00 adam Exp $ + */ +/** + * \file soap.c + * \brief Implements SOAP + * + * This implements encoding and decoding of SOAP packages using + * Libxml2. */ #include @@ -109,7 +116,7 @@ int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, ptr = ptr->children; p->which = Z_SOAP_fault; - p->u.fault = odr_malloc(o, sizeof(*p->u.fault)); + p->u.fault = (Z_SOAP_Fault *) odr_malloc(o, sizeof(*p->u.fault)); p->u.fault->fault_code = 0; p->u.fault->fault_string = 0; p->u.fault->details = 0; @@ -148,7 +155,8 @@ int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, else { p->which = Z_SOAP_generic; - p->u.generic = odr_malloc(o, sizeof(*p->u.generic)); + p->u.generic = (Z_SOAP_Generic *) + odr_malloc(o, sizeof(*p->u.generic)); p->u.generic->no = i; p->u.generic->ns = handlers[i].ns; p->u.generic->p = handler_data; @@ -203,6 +211,8 @@ int z_soap_codec_enc_xsl(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) {