X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zutil%2Fsoap.c;h=157533cbf2b1b91d596aeb5e3477337e27fc0c54;hp=911f36722965ab373b27e39eec67a25926817b2e;hb=d9d97a04b6f9597225b8440dad61790dfa39a751;hpb=c620a713f1418315efcd4e6fab225e036775d365 diff --git a/zutil/soap.c b/zutil/soap.c index 911f367..157533c 100644 --- a/zutil/soap.c +++ b/zutil/soap.c @@ -2,11 +2,15 @@ * 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 +#if HAVE_XSLT +#include +#include + 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; - 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) @@ -39,7 +44,7 @@ int z_soap_codec(ODR o, Z_SOAP **pp, 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); @@ -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 || - strcmp(ptr->name, "Envelope")) + strcmp(ptr->name, "Envelope") || !ptr->ns) { 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"); + xmlSetNs(envelope_ptr, ns_env); + 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); - *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); @@ -210,3 +217,4 @@ int z_soap_codec(ODR o, Z_SOAP **pp, } return 0; } +#endif