projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix for bug 371 "options concurrentOperations ignores concurrentOperations"
[yaz-moved-to-github.git]
/
src
/
soap.c
diff --git
a/src/soap.c
b/src/soap.c
index
2d19101
..
3de5e29
100644
(file)
--- a/
src/soap.c
+++ b/
src/soap.c
@@
-1,8
+1,15
@@
/*
/*
- * Copyright (c) 2002-2004, Index Data.
+ * Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
* 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.10 2005-01-15 19:47:14 adam Exp $
+ */
+/**
+ * \file soap.c
+ * \brief Implements SOAP
+ *
+ * This implements encoding and decoding of SOAP packages using
+ * Libxml2.
*/
#include <yaz/soap.h>
*/
#include <yaz/soap.h>
@@
-109,7
+116,7
@@
int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp,
ptr = ptr->children;
p->which = Z_SOAP_fault;
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;
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;
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;
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);
if (p->which == Z_SOAP_generic && !strcmp(p->ns, "SRU"))
{
xmlDocSetRootElement(doc, body_ptr->children);
+ body_ptr->children = 0;
+ xmlFreeNode(envelope_ptr);
}
if (stylesheet)
{
}
if (stylesheet)
{