static struct SOAP_ENV__Fault* allocate_fault(struct soap *s, const char *faultcode, const char *faultstring) { struct SOAP_ENV__Fault *fault; /* require a faultcode */ if (faultcode == NULL) { return NULL; } fault = (struct SOAP_ENV__Fault*)soap_malloc(s, sizeof(struct SOAP_ENV__Fault)); if (fault == NULL) { return NULL; } soap_default_SOAP_ENV__Fault(s, fault); fault->faultcode = soap_strdup(s, faultcode); if (faultstring) { fault->faultstring = soap_strdup(s, faultstring); } fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(s, sizeof(struct SOAP_ENV__Detail)); if (fault->detail) { soap_default_SOAP_ENV__Detail(s, fault->detail); } return fault; }
SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap) { soap_fault(soap); if (soap->version == 1) { if (!soap->fault->detail) { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail)); soap_default_SOAP_ENV__Detail(soap, soap->fault->detail); } return (const char**)&soap->fault->detail->__any; } if (!soap->fault->SOAP_ENV__Detail) { soap->fault->SOAP_ENV__Detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail)); soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail); } return (const char**)&soap->fault->SOAP_ENV__Detail->__any; }
SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap) { soap_fault(soap); if (soap->version == 2) { if (soap->fault->SOAP_ENV__Detail == NULL) { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1); soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail); } return (const char**)&soap->fault->SOAP_ENV__Detail->__any; } if (soap->fault->detail == NULL) { soap->fault->detail = soap_new_SOAP_ENV__Detail(soap, -1); soap_default_SOAP_ENV__Detail(soap, soap->fault->detail); } return (const char**)&soap->fault->detail->__any; }