diff options
Diffstat (limited to 'libcsoap/soap-fault.c')
-rw-r--r-- | libcsoap/soap-fault.c | 188 |
1 files changed, 94 insertions, 94 deletions
diff --git a/libcsoap/soap-fault.c b/libcsoap/soap-fault.c index dfb769e..b002ddc 100644 --- a/libcsoap/soap-fault.c +++ b/libcsoap/soap-fault.c @@ -1,29 +1,29 @@ /****************************************************************** - * $Id: soap-fault.c,v 1.2 2004/02/03 08:07:36 snowdrop Exp $ - * - * CSOAP Project: A SOAP client/server library in C - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: soap-fault.c,v 1.3 2004/08/26 17:06:18 rans Exp $ +* +* CSOAP Project: A SOAP client/server library in C +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include <libcsoap/soap-fault.h> #include <libcsoap/soap-xml.h> - +#include <string.h> static char *soap_env_ns = "http://schemas.xmlsoap.org/soap/envelope/"; static char *soap_env_enc = "http://schemas.xmlsoap.org/soap/encoding/"; @@ -31,29 +31,29 @@ static char *soap_xsi_ns = "http://www.w3.org/1999/XMLSchema-instance"; static char *soap_xsd_ns = "http://www.w3.org/1999/XMLSchema"; /* - Parameters: - 1- soap_env_ns - 2- soap_env_enc - 3- xsi_ns - 4- xsd_ns - 5- faultcode - 6- faultstring - 7- faultactor - 8- detail - */ +Parameters: +1- soap_env_ns +2- soap_env_enc +3- xsi_ns +4- xsd_ns +5- faultcode +6- faultstring +7- faultactor +8- detail +*/ #define _SOAP_FAULT_TEMPLATE_ \ - "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"%s\" SOAP-ENV:encoding=\"%s\"" \ - " xmlns:xsi=\"%s\"" \ - " xmlns:xsd=\"%s\">" \ - " <SOAP-ENV:Body>"\ - " <Fault>"\ - " <faultcode>%s</faultcode>"\ - " <faultstring>%s</faultstring>"\ - " <faultactor>%s</faultactor>"\ - " <faultdetail>%s</faultdetail>"\ - " </Fault>" \ - " </SOAP-ENV:Body>"\ - "</SOAP-ENV:Envelope>" + "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"%s\" SOAP-ENV:encoding=\"%s\"" \ + " xmlns:xsi=\"%s\"" \ + " xmlns:xsd=\"%s\">" \ + " <SOAP-ENV:Body>"\ + " <Fault>"\ + " <faultcode>%s</faultcode>"\ + " <faultstring>%s</faultstring>"\ + " <faultactor>%s</faultactor>"\ + " <faultdetail>%s</faultdetail>"\ + " </Fault>" \ + " </SOAP-ENV:Body>"\ + "</SOAP-ENV:Envelope>" @@ -63,62 +63,62 @@ static char *fault_client = "Client"; static char *fault_server = "Server"; xmlDocPtr soap_fault_build(fault_code_t fcode, - const char *faultstring, - const char *faultactor, - const char *detail) + const char *faultstring, + const char *faultactor, + const char *detail) { - /* variables */ - char *faultcode; - int bufferlen = 2000; - char *buffer; - xmlDocPtr fault; /* result */ + /* variables */ + char *faultcode; + int bufferlen = 2000; + char *buffer; + xmlDocPtr fault; /* result */ - log_verbose1("Build fault"); + log_verbose1("Build fault"); - switch (fcode) { + switch (fcode) { case Fault_VersionMismatch: - faultcode = fault_vm; - break; + faultcode = fault_vm; + break; case Fault_MustUnderstand: - faultcode = fault_mu; - break; + faultcode = fault_mu; + break; case Fault_Client: - faultcode = fault_client; - break; + faultcode = fault_client; + break; case Fault_Server: - faultcode = fault_server; - break; + faultcode = fault_server; + break; default: - faultcode = fault_client; - } - - /* calculate buffer length */ - if (faultstring) bufferlen += strlen(faultstring); - if (faultactor) bufferlen += strlen(faultactor); - if (detail) bufferlen += strlen(detail); - - log_verbose2("Creating buffer with %d bytes", bufferlen); - buffer = (char*)malloc(bufferlen); - - sprintf(buffer, _SOAP_FAULT_TEMPLATE_, - soap_env_ns, soap_env_enc, soap_xsi_ns, - soap_xsd_ns, faultcode, - faultstring?faultstring:"error", - faultactor?faultactor:"", - detail?detail:""); - - fault = xmlParseDoc(buffer); - free(buffer); - - if (fault == NULL) { - log_error1("Can not create xml document!"); - - return soap_fault_build(fcode, "Can not create fault object in xml", - "soap_fault_build()", NULL); - } - - log_verbose2("Returning fault (%p)", fault); - return fault; - + faultcode = fault_client; + } + + /* calculate buffer length */ + if (faultstring) bufferlen += strlen(faultstring); + if (faultactor) bufferlen += strlen(faultactor); + if (detail) bufferlen += strlen(detail); + + log_verbose2("Creating buffer with %d bytes", bufferlen); + buffer = (char*)malloc(bufferlen); + + sprintf(buffer, _SOAP_FAULT_TEMPLATE_, + soap_env_ns, soap_env_enc, soap_xsi_ns, + soap_xsd_ns, faultcode, + faultstring?faultstring:"error", + faultactor?faultactor:"", + detail?detail:""); + + fault = xmlParseDoc((xmlChar *)buffer); + free(buffer); + + if (fault == NULL) { + log_error1("Can not create xml document!"); + + return soap_fault_build(fcode, "Can not create fault object in xml", + "soap_fault_build()", NULL); + } + + log_verbose2("Returning fault (%p)", fault); + return fault; + } |