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
HTTP Timeouts. Memory leak checks and fixes. Changed member names for
[yaz-moved-to-github.git]
/
zutil
/
soap.c
diff --git
a/zutil/soap.c
b/zutil/soap.c
index
911f367
..
157533c
100644
(file)
--- a/
zutil/soap.c
+++ b/
zutil/soap.c
@@
-2,11
+2,15
@@
* Copyright (c) 2002-2003, Index Data.
* See the file LICENSE for details.
*
* Copyright (c) 2002-2003, Index Data.
* See the file LICENSE for details.
*
- * $Id: soap.c,v 1.1 2003-02-12 15:06:44 adam Exp $
+ * $Id: soap.c,v 1.3 2003-02-17 14:35:42 adam Exp $
*/
#include <yaz/soap.h>
*/
#include <yaz/soap.h>
+#if HAVE_XSLT
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
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";
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";
@@
-15,7
+19,8
@@
int z_soap_error(ODR o, Z_SOAP *p,
const char *details)
{
p->which = Z_SOAP_error;
const char *details)
{
p->which = Z_SOAP_error;
- p->u.soap_error = odr_malloc(o, sizeof(*p->u.soap_error));
+ p->u.soap_error = (Z_SOAP_Fault *)
+ odr_malloc(o, sizeof(*p->u.soap_error));
p->u.soap_error->fault_code = odr_strdup(o, fault_code);
p->u.soap_error->fault_string = odr_strdup(o, fault_string);
if (details)
p->u.soap_error->fault_code = odr_strdup(o, fault_code);
p->u.soap_error->fault_string = odr_strdup(o, fault_string);
if (details)
@@
-39,7
+44,7
@@
int z_soap_codec(ODR o, Z_SOAP **pp,
if (!content_buf || !*content_buf || !content_len)
return -1;
if (!content_buf || !*content_buf || !content_len)
return -1;
- *pp = p = odr_malloc(o, sizeof(*p));
+ *pp = p = (Z_SOAP *) odr_malloc(o, sizeof(*p));
p->ns = soap_v1_1;
doc = xmlParseMemory(*content_buf, *content_len);
p->ns = soap_v1_1;
doc = xmlParseMemory(*content_buf, *content_len);
@@
-49,7
+54,7
@@
int z_soap_codec(ODR o, Z_SOAP **pp,
/* check that root node is Envelope */
ptr = xmlDocGetRootElement(doc);
if (!ptr || ptr->type != XML_ELEMENT_NODE ||
/* check that root node is Envelope */
ptr = xmlDocGetRootElement(doc);
if (!ptr || ptr->type != XML_ELEMENT_NODE ||
- strcmp(ptr->name, "Envelope"))
+ strcmp(ptr->name, "Envelope") || !ptr->ns)
{
xmlFreeDoc(doc);
return z_soap_error(o, p, "SOAP-ENV:Client",
{
xmlFreeDoc(doc);
return z_soap_error(o, p, "SOAP-ENV:Client",
@@
-178,6
+183,8
@@
int z_soap_codec(ODR o, Z_SOAP **pp,
envelope_ptr = xmlNewNode(0, "Envelope");
ns_env = xmlNewNs(envelope_ptr, p->ns, "SOAP-ENV");
envelope_ptr = xmlNewNode(0, "Envelope");
ns_env = xmlNewNs(envelope_ptr, p->ns, "SOAP-ENV");
+ xmlSetNs(envelope_ptr, ns_env);
+
body_ptr = xmlNewChild(envelope_ptr, ns_env, "Body", 0);
xmlDocSetRootElement(doc, envelope_ptr);
body_ptr = xmlNewChild(envelope_ptr, ns_env, "Body", 0);
xmlDocSetRootElement(doc, envelope_ptr);
@@
-201,7
+208,7
@@
int z_soap_codec(ODR o, Z_SOAP **pp,
return ret;
}
xmlDocDumpMemory(doc, &buf_out, &len_out);
return ret;
}
xmlDocDumpMemory(doc, &buf_out, &len_out);
- *content_buf = odr_malloc(o, len_out);
+ *content_buf = (char *) odr_malloc(o, len_out);
*content_len = len_out;
memcpy(*content_buf, buf_out, len_out);
xmlFree(buf_out);
*content_len = len_out;
memcpy(*content_buf, buf_out, len_out);
xmlFree(buf_out);
@@
-210,3
+217,4
@@
int z_soap_codec(ODR o, Z_SOAP **pp,
}
return 0;
}
}
return 0;
}
+#endif